在AMS分析和activity的启动流程时候,经常碰到ActivityStackSupervisor、ActivityStack、ActivityRecord、TaskRecord,现在对它们统一梳理一下。
1.简介
先来张简单的关系图:

ActivityStack、TaskRecord、ActivityRecord关系图.png
- 一个
ActivityRecord对应一个Activity,保存了一个Activity的所有信息;但是一个Activity可能会有多个ActivityRecord,因为Activity可以被多次启动,这个主要取决于其启动模式。 - 一个
TaskRecord由一个或者多个ActivityRecord组成,这就是我们常说的任务栈,具有后进先出的特点。
本文详细阐述了Android系统中ActivityStackSupervisor、ActivityStack、ActivityRecord和TaskRecord之间的关系,通过代码分析和场景模拟,揭示了Activity的启动模式以及Intent FLAG对启动行为的影响。在AMS中,ActivityStackSupervisor管理多个ActivityStack,每个ActivityStack负责一个TaskRecord,而ActivityRecord则保存了Activity的详细信息。
订阅专栏 解锁全文
3028

被折叠的 条评论
为什么被折叠?



