码迷,mamicode.com
首页 > 其他好文 > 详细

Activity组件的启动过程

时间:2015-07-01 14:19:21      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

最近在学习Activity的组件过程,在这里把过程写一遍,当作记忆,如果想看时序图或者源码的,可以网上另找。

Laucher组件启动程序中MainActivity组件的过程:

(1)Laucher组件向ActivityManagerService发送一个启动MainActivity组件的进程间通信。

(2)ActivityManagerService首先将要启动的MainActivity组件的intent信息保存起来,同时向Laucher组件发送一个进入中止状态的进程间通信请求。

(3)Laucher组件进入到中止状态后,就会向ActivityManagerService发送一个已进入中止状态的进程间通信请求,ActivityMangerService在收到中止状态的进程间通信请求后,把消息移除,并在mHistroy里同步Laucher组件的状态,接着就可以执行启动MainActivity组件的操作。

(4)ActivityManagerService发现用来运行MainActivity组件的进程不存在就会先启动一个新的应用进程。

(5)新的进程启动完后,就向AcitvityManagerService发送一个进程启动完成的请求。

(6)ActivityManagerService将第2步保存下来的intent消息发给刚启动的进程,以便启动MainActivity组件,这里还涉及到activity组件在ActivityManagerService的状态保存。


MainActivity组件启动同个进程下的activity组件的过程如下:

(1)MainActivity组件向ActivityManagerService发送一个启动Activity组件的进程间通信。

(2)ActivityManagerService首先将要启动的Activity组件的intent信息保存起来,同时向MainActivity组件发送一个进入中止状态的进程间通信请求。

(3)MainActivity组件进入到中止状态后,就会向ActivityManagerService发送一个已进入中止状态的进程间通信请求,ActivityMangerService在收到中止状态的进程间通信请求后,把消息移除,并在mHistroy里同步MainActivity组件的状态,接着就可以执行启动Activity组件的操作。

(4)ActivityManagerService将第2步保存下来的intent消息发给已经存在启动的进程,以便启动Activity组件,这里还涉及到MainActivity组件在ActivityManagerService的状态保存。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Activity组件的启动过程

标签:

原文地址:http://blog.csdn.net/luoxianfeng89/article/details/46708327

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!