Skip to content
阅读进度

ActivityThread 为什么叫主线程 Application 和 Provider 在什么时候初始化? ​

返回 Framework 与系统服务 目录

标准回答 ​

ActivityThread 是应用侧协调组件生命周期和主线程消息的核心类,本身并不是 Thread 子类。进程入口 ActivityThread.main 创建主 Looper,向系统注册应用 Binder 接口,然后由主线程处理绑定应用和生命周期事务。应用绑定阶段会创建 Application 对象、安装适用的 ContentProvider,并调用 Application.onCreate;Provider.onCreate 往往早于 Application.onCreate。Provider 初始化如果包含重 I/O 或 SDK 工作,就可能直接进入冷启动关键路径。

延伸追问 ​

Application 构造或 attachBaseContext 与 Application.onCreate 不是同一个时机;延迟 Provider 初始化之前必须确认 SDK 的真实初始化契约。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。