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依赖。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容