先把结论放在前面:任务栈的本质是一棵由 AMS 维护的树,而Activity只是挂在树上的一个节点。三个数据结构撑起这套模型——ActivityRecord(页面)、TaskRecord(任务栈)、ActivityStackSupervisor(调度器)。把这三者画出来,这题就通了大半;画不出来、背再多名词也白背。面试官问这题时通常会加一句"你画一下"。这不是刁难,是因为这套结构的三层关系不画出来说不清——尤其Task与taskAffinity的一对多关系、Activity与Task的归属判定,是最容易含糊的地方。三层数据模型ActivityTaskManagerService (AMS) └── ActivityStackSupervisor ← 调度器:决定"下一个该处理谁" ├── RootTask #1 ← 桌面/最近任务 │ └── TaskRecord (id=42) ← 一个任务栈,对应用户视角的"最近任务卡片" │ ├── ActivityRecord A ← 页面记录(含 Intent、状态、token) │ ├── ActivityRecord B │ └── ActivityRecord C