View的创建流程
1.view在什么时候添加到屏幕上的?
不是在setContentView的时候---》他只是创建了一个DecorView,xml 添加到了DecorView里面。
2。来看一下ActivityThread 里面的代码。
handleResumeActivity--》执行performResumeActivity(r, finalStateRequest, reason)
----》进入Activity。java代码的 performResume----〉 mInstrumentation.callActivityOnResume(this);
3.那么View是什么时候添加到界面上的呢?
是在performResume的后面.
----->wm.addView(decor, l);---wm也是activity的attach里面初始化设置的。
----->WindowManagerGlobal.addView 关键代码段
if (windowlessSession == null) {
root = new ViewRootImpl(view.getContext(), display);
} else {
root = new ViewRootImpl(view.getContext(), display,
windowlessSession);
}
view.setLayoutParams(wparams);
//3个参数的含义
mViews.add(view);//DecorView
mRoots.add(root);//ViewRootImpl