ActivityRecord 在什么时候存入 TaskRecord
时间: 2023-06-19 11:09:30 浏览: 236
在 Android 系统中,ActivityRecord 和 TaskRecord 是两个不同的概念。
ActivityRecord 表示一个 Activity 实例的信息,包括 Activity 的状态、所属进程、启动模式等等。每个 Activity 实例都对应一个 ActivityRecord。
TaskRecord 则表示一个任务栈的信息,包括任务栈中的 Activity 的列表、栈顶 Activity 等等。一个应用程序可以有多个任务栈,每个任务栈中包含多个 Activity。
当一个 Activity 启动时,它会被添加到所属任务栈中。这个过程中,ActivityRecord 会在 Activity 启动时被创建,并且在启动过程中被添加到 TaskRecord 中。
具体来说,启动一个 Activity 的过程如下:
1. 系统创建一个新的 ActivityRecord 对象,保存启动的 Activity 的信息。
2. 系统查找要启动的 Activity 所属的任务栈,如果任务栈不存在,则创建一个新的任务栈。这个过程中,系统会创建一个新的 TaskRecord 对象,并将 ActivityRecord 添加到 TaskRecord 中。
3. 系统将 ActivityRecord 添加到 TaskRecord 的 Activity 列表中,并将 ActivityRecord 设为栈顶 Activity。
4. 系统创建一个新的进程(如果需要),并在这个进程中启动 Activity。
总之,ActivityRecord 在 Activity 启动过程中被创建,并且在启动过程中被添加到 TaskRecord 中。
阅读全文