Window(待续)
来源:互联网 发布:ios抹除数据 编辑:程序博客网 时间:2024/06/06 01:22
Window Activity View三者间关系
Activity其实不是显示视图(直观上感觉是它),实际上Activity调用了PhoneWindow的setContentView()方法,然后加载视图,将视图放到这个Window上,而Activity其实构造的时候初始化的是Window(PhoneWindow),Activity其实是个控制单元,即可视的人机交互界面。
Window的操作
Window的add、delete、update操作过程需要通过 WindowManager 的来实现,WindowManager 是一个接口,它的真正实现是WindowManagerImpl 类。而WindowManagerImpl则将操作全部交给 WindowManagerGlobal 来处理。
ArrayList< View> mViewsArrayList< ViewRootImpl> mRootsArrayList< WindowManager. LayoutParams> mParamsArraySet< View> mDyingViews
在上面的声明中,mViews 存储的是所有 Window 所 对应的View, mRoots 存储的是所有 Window 所对应的 ViewRootImpl, mParams 存储的是所有 Window 所对应的布局参数,而 mDyingViews 则存储了 那些正在被删除 的 View 对象, 或者说是那些已经调用 removeView 方法但是删除操作还未完成的 Window 对象。 在 addView 中通过如下方式将 Window 的一系列对象添加到列表中:
root = new ViewRootImpl( view. getContext(), display); view. setLayoutParams( wparams); mViews. add( view);mRoots. add( root); mParams. add( wparams);
通过 WindowSession 最终来完成 Window 的添加过程。 在下面的代码中, mWindowSession 的 类型是 IWindowSession,它是一个 Binder 对象,真正的实现类是 Session,也就是 Window 的添加过程 是一次 IPC 调用。
在 Session 内部会通过 WindowManagerService 来实现 Window 的操作,如此一来,Window 的操作请求就交给 WindowManagerService去处理 了,在 WindowManagerService 内部会为每一个应用保留一个 单独的 Session。
- Window(待续)
- window(待续)
- 新任务(待续)
- GUI经验总结(待续)
- typedef (待续)
- gwt特点(待续)
- 数组(待续)
- typedef (待续)[转帖]
- Javascript 心得 (待续)
- 设计模式(待续)
- 线程有关(待续)
- 有关HTML5----(待续)
- 智能指针(待续)
- 利器GCC(待续)
- flashback 技术(待续)
- POJ1753(未完待续)
- servlet(待续)
- Libpcap学习(待续)
- elasticsearch 分页问题
- 自定义数据类型写入SequenceFile并读出
- 华为、魅族手机不显示Log的原因
- selenium中的expected_conditions模块详解
- MySQL处理千万级数据查询、分页(有些地方值得参考,不过原作者好像走歪了)
- Window(待续)
- json字符串转json对象
- yum 使用阿里云源
- getParameter 与 getAttribute的区别以及获取表单的一些方法备忘及整理
- Java_基础—泛型固定上/下边界
- HDU
- cxf动态调用webservice接口
- TP5 函数助手实例说明
- html-设置导航栏Tab的左图标