Activity Dialog Toastステータスバーナビゲーションバーはどのようにviewを追加しますか?


Dialogがviewを追加する方法:
public void setContentView(@LayoutRes int layoutResID) {
    mWindow.setContentView(layoutResID);
}

Activityがviewを追加する方法:
public void setContentView(View view) {
    getWindow().setContentView(view);
    initWindowDecorActionBar();
}

Activity Dialogは、WindowでViewを追加します.したがって,Activity DialogはWindowに依存して表示される.
 
Toastがviewを追加する方法:
mWM = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
mWM.addView(mView, mParams);
ToastはWindowManagerで直接viewを追加したもので、Windowに依存せずに表示されます.
 
ナビゲーションバーにviewを追加する方法:
mWindowManager.addView(mNavigationBarView, getNavigationBarLayoutParams());

ナビゲーションバーはWindowManagerで直接viewを追加したもので、Windowに依存せずに表示されます.
 
ステータスバーにviewを追加する方法:
private void addStatusBarWindow() {
    makeStatusBarView();
    mStatusBarWindowManager = new StatusBarWindowManager(mContext);
    mRemoteInputController = new RemoteInputController(mStatusBarWindowManager,
            mHeadsUpManager);
    mStatusBarWindowManager.add(mStatusBarWindow, getStatusBarHeight());
}

ステータスバーは、WindowManagerで直接viewを追加したもので、Windowに依存せずに表示されます.