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

相关文章:

  • 2022-12-23
  • 2022-01-14
  • 2021-07-05
  • 2021-11-18
  • 2021-04-19
  • 2021-11-26
  • 2021-08-22
猜你喜欢
  • 2021-09-29
  • 2021-08-02
  • 2021-09-15
  • 2021-05-12
  • 2021-05-11
相关资源
相似解决方案