Android生命周期中谁调用OnCreate()方法?其调用流程是怎样的?
Android中onCreate()方法的调用流程详解
整体触发链路
当用户点击应用图标、系统唤起Activity(如从后台恢复)时,调用流程从系统服务层逐层传递到应用层:
- 系统侧的ActivityManagerService(AMS) 通过Binder跨进程通信,向应用进程的ActivityThread发送启动Activity的请求。
- ActivityThread收到请求后,执行核心启动入口方法
performLaunchActivity()。
实例化与初始化阶段
在performLaunchActivity()内部会完成以下关键步骤:
- 通过类加载器(ClassLoader)创建目标Activity的实例。
- 调用Activity的
attach()方法,初始化上下文(Context)、Window、ActivityManager等核心依赖组件,让Activity具备与系统交互的基础能力。 - 准备
Bundle savedInstanceState参数:如果Activity是恢复启动(比如配置变更、后台进程被回收后重启),该参数会携带系统保存的历史页面状态;首次启动时为null。
调用onCreate()
完成上述初始化后,ActivityThread会直接调用Activity实例的onCreate(Bundle savedInstanceState)方法,此时进入开发者熟悉的业务代码阶段——你可以在这里执行布局初始化(setContentView())、ViewModel绑定、数据初始化等操作。
后续生命周期衔接
onCreate()执行完成后,会按顺序触发onStart()、onResume()等生命周期方法,直到Activity进入前台可交互状态。
内容的提问来源于stack exchange,提问作者Yathish Kumar Y
相关产品推荐
相关产品推荐

