ActivityRecord内部存储了activity所有信息,包括AMS的引用、AndroidManifes节点信息、activity状态、activity资源信息和activity进程相关信息,其中含有该AcitivityRecord所在的TaskRecord,这就将ActivityRecord和TaskRecord关联在一起了
名称 | 类型 | 说明 |
service | ActivityManagerService | AMS引用 |
info | ActivityInfo | Activity中代码和AndroidManifes设置的节点,比如launchMode |
launchedFromPackage | String | 启动activity的包名 |
taskAffinity | String | Activity希望归属的栈 |
task | TaskRecord | ActivityRecord所在的TaskRecord |
app | ProcessRecord | ActivityRecord所在的应用程序进程 |
state | ActivityState | 当前activity的状态 |
icon | int | Activity的图标资源标识符 |
theme | int | Activity的主题资源标识符 |
名称 | 类型 | 说明 |
taskId | int | 任务栈的唯一标识符 |
affinity | String | 任务栈的倾向性 |
intent | Intent | 启动这个任务栈的Intent |
mActivities | ArrayList<ActivtyRecord> | 按照历史顺序排列的activity记录 |
mStack | ActivityStack | 当前归属的ActivityStack |
mService | ActivityManagerService | AMS的引用 |
特殊状态的Activity:
这些特殊的状态都是ActivityRecord类型,ActivityRecord用来记录一个activity的所有信息
ArrayList | 元素类型 | 说明 |
mTaskHistory | TaskRecord | 所有没有被销毁的activity任务栈 |
mLRUActivities | ActivityRecord | 正在运行的activity,列表的第一个条目是最近最少使用的activity |
mNoAnimActivities | ActivityRecord
| 不考虑转换动画的activity |
mValidateAppTokens | TaskGroup | 用于与窗口管理器验证应用令牌 |
ActivityRecord用来记录一个activity的所有信息
TaskRecord中包含了一个或多个ActivityRecord
ActivityStack又包含了一个或多个TaskRecord,它是TaskRecord的管理者