在AMS分析和activity的启动流程时候,经常碰到ActivityStackSupervisor、ActivityStack、ActivityRecord、TaskRecord,现在对它们统一梳理一下。
1.简介
先来张简单的关系图:
ActivityStack、TaskRecord、ActivityRecord关系图.png
- 一个
ActivityRecord
对应一个Activity
,保存了一个Activity
的所有信息;但是一个Activity
可能会有多个ActivityRecord
,因为Activity
可以被多次启动,这个主要取决于其启动模式。 - 一个
TaskRecor
d由一个或者多个ActivityRecord
组成,这就是我们常说的任务栈,具有后进先出的特点。 ActivityStack
则是用来管理TaskRecor