启动Activity的过程
来源:互联网 发布:郭德纲于谦 知乎 编辑:程序博客网 时间:2024/06/05 19:30
这里涉及到四个模块:ActivityManagerService用来管理Activity的生命周期;ActivityStack将创建的Activity放入到堆栈中;ActivityThread它是真正用来启动Activity的;ActivityThread会创建一个ApplicationThread类型的Binder实例用来ActivityManagerService和ActivityThread进程间通信的。ActivityManagerService和ActivityStack在同一个进程,而AcitivityThread和ApplicationThread在另一个进程。
启动Activity分两种:通过点击图标启动Activity的过程和在Activity内部启动一个新的Activity
对于通过点击图标启动:
启动过程大致分为五步:
1, 当点击图标后,Launcher通过Binder进程间通信机制通知ActivityManagerService它要启动一个Activity了;
2, AcitivityManagerService通过Binder通知Launcher需要进入pause状态;
3, Laucher通过Binder通知AcitvityMangerService它已经就绪,进入pause状态了;于是ActivityManagerService就创建一个ActivityThread实例,启动了一个新的进程,即将要启动的Activity就运行在这个进程。
4, ActivityThread就通过Binder进程间通信机制将一个ApplicationThread类型的Binder实例传递给ActivityManagerService,以便ActivityManagerService用这个Binder实例和它进行进程间通信;
5,ActivityManagerService通过Binder进程间通信机制通知ActivityThread一切准备就绪可以启动一个新的Activity了。
对于Activity内部启动:
1, MainActivity通过Binder进程间通信机制告诉ActivityManagerService它要启动一个新的Activity了;
2, ActivityManagerService通过Binder进程间通信机制告诉MainActivity进入pause状态;
3, MainActivity通过Binder进程间通信告诉ActivityManagerService它已经就绪进入pause状态了;于是ActivityManagerService即将在MainActivity的进程中创建一个新的Activity。
4, ActivityManagerService通过Binder进程间通信机制告诉MainActivity所在的进程ActivityThread一切准备就绪,启动启动一个新的Activity吧
- 启动Activity的过程
- Activity启动的过程
- Activity的启动过程
- Activity的启动过程
- Activity的启动过程
- Activity启动的过程
- Activity的启动过程
- Activity的启动过程
- Activity的启动过程
- activity 的启动过程
- activity的启动过程分析
- Activity组件的启动过程
- Activity组件的启动过程
- Activity的启动过程详解
- Activity组件的启动过程
- Activity的启动过程--startActivity()
- 关于Activity的启动过程
- 启动activity的过程追踪
- 【python coding 4:字典】python中字典的用法
- Openfire源代码部署MyEclipse
- 字符串实现反转的几种方法
- 阿爾特意局 特會後悔u影了
- 16 DHCP
- 启动Activity的过程
- android经典DEMO
- linux inode信息查看命令stat
- 愛的分公司的華國鋒考核計劃
- 黑马程序员__c#基础4
- C++学习之C++对象内存模型(下)
- hdu1010--Tempter of the Bone(迷宫)
- codeforces 17A Noldbach problem
- C++ 大数类模板