Activity的启动流程-第二篇

一、Activity的启动流程

activity的启动流程并不是指生命周期,而是执行startActivity()后程序的执行流程。

写过Android程序的都知道,要想跳转到另外一个Activity就要,设置好要跳转的页面和参数

Intent intent = new Intent();

....

startActivity(intent);

在执行startActivity方法后,该方法发送intent给Android系统,Android系统根据intent来创建Activity

1.可以细分为一下步骤:

Activity -> ActivityManagerService(检查AMS)

ActivityManagerService -> ApplicationThread

ApplicationThread -> Activity

 在ActivityMangerService创建ApplicationThread,可以把Application看成是Binder,因为他实现了Binder。

2.调用startActivity实质是调用startActivityForResult方法。

3.在startActivityForResult中实质是调用了仪表Instrumentation的execStartActivity方法,然后就是第一篇所的通过Java反射创建Activity。

原文地址:https://www.cnblogs.com/riyueqian/p/15227381.html