本章博客经过自己查了源码以及参考了别人的的些许博客,就算做一个小小的总结加深自己的体会和理解,算是个学习笔记。
window是一个抽象类,正如api所说这个类只有一个子类,也就是PhoneWindow,该子类位于com.android.internal.policy.impl包里面;查看源码可以知道Activity类有一个Window类的引用mWindow,并且可以通过getWindow()来获取这个Window对象。简单的追踪一下源码可以发现window在Activity的attach方法里面得到了初始化:
final void attach(Context context, ActivityThread aThread,
Instrumentation instr, IBinder token, int ident,
Application application, Intent intent, ActivityInfo info,
CharSequence title, Activity parent, String id,
NonConfigurationInstances lastNonConfigurationInstances,
Configuration config) {
attachBaseContext(context);
mFragments.attachActivity(this);
mWindow = PolicyManager.makeNewWindow(this);
mWindow.setCallback(this);
mWindow.getLayoutInflater().setPrivateFactory(this);
............
mWindow.setWindowMan