1 Activity是有主线程ActivityThread启动,找到ActivityThread.java文件,找到其中的main函数。
2 可以看到在main函数中new了ActivityThread,并且调用了attach接口。
3 接着详细看attach接口,其中可以找到在这个接口中获取了activityManager,
其中mAppThread是ApplicationThread对象,到这就可以看到将application交给了activityManager,其实activity是由系统的服务帮我们创建的。
4 进去ApplicationThread中,可以看到这个类中有一些和activity生命周期相关的接口
在这些接口中我们主要关注scheduleLaunchActivity这个接口,从接口的命名就可以看出来,这个是用来启动activity的,接着往下看,
可以看到这边调用了sendMessage(H.LAUNCH_ACTIVITY, r)并传入了LAUNCH_ACTIVITY。
5 进入sendMessage接口中最终会调用到如下的handler类
在handlerMessage中找到LAUNCH_ACTIVITY,这段代码中关注handleLaunchActivity接口。
6 进入handleLaunchActivity接口,看到如下代码
进入代码后可以发现
在这里调用了相应的onCreate接口。
Android activity启动和生命周期调用流程
最新推荐文章于 2022-09-19 16:56:02 发布