多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
在介绍完App的启动流程后,我们发现,其实就是启动一个App的首页。 接下来我们看App内部页面的跳转(即**子Activity的启动过程**)。 从ActivityA跳转到ActivityB,其实可以把ActivityA看作是Launcher,那么这个跳转过程,和App的启动过程就很像了。 有了前面的分析基础,会发现,这个过程不需要重新启动一个新的进程,所以可以省略App启动过程中的一些步骤,流程简化为: * 1)ActivityA向AMS发送一个启动ActivityB的消息。 * 2)AMS保存ActivityB的信息,然后通知App,你可以休眠了(onPaused)。 * 3)ActivityA进入休眠,然后通知AMS,我休眠了。 * 4)AMS发现ActivityB所在的进程就是ActivityA所在的进程,所以不需要重新启动新的进程,所以它就会通知App,启动ActivityB。 * 5)App启动ActivityB。 不想看上述文字的,看我画的这个图: ![](http://images2015.cnblogs.com/blog/13430/201705/13430-20170519230735275-563343566.png) 整体流程我就不多说了,和上一篇文章介绍的App启动流程是基本一致的。 以上的分析,仅限于ActivityA和ActivityB在相同的进程中,如果在Manifest中指定这两个Activity不在同一个进程中,那么就又是另一套流程了,但是整体流程大同小异。 **附录**: 附一张老罗分析子Activity的启动过程流程图 ![](https://box.kancloud.cn/bf747abf762d871d049ae0a5f7758338_1524x1996.jpg)