Activity---什么时候才可见?

Activity什么时候才能够被我们看到呢?

直接看答案:

onResume()的时候,Activity的布局才可见

ActivityThread#handleResumeActivity

activity.makeVisible();

void makeVisible() {
        if (!mWindowAdded) {
            ViewManager wm = getWindowManager();
            wm.addView(mDecor, getWindow().getAttributes());
            mWindowAdded = true;
        }
        mDecor.setVisibility(View.VISIBLE);
}

makeVisible 的主要作用是mDecor.setVisibility(View.VISIBLE);。同时,如果mWindowAdded为false,那么将会把mDecor加入到WindowManager.。

拓展问题:
ViewRootImpl的创建时机?/ ViewRootImpl什么时候创建?

WindowManager#addView被调用的时候会通过WindowManagerImpl#addView通过桥接的设计模式用WindowManagerGlobal#addView创建ViewRootImpl实例。同时,mDecor会作为构造函数的参数被ViewRootImpl依赖。

你可能感兴趣的:(Activity---什么时候才可见?)