SingleTask 和 FLAG_ACTIVITY_CLEAR_TOP 的区别

swa*_*ati 2 android android-intent

我试图理解 SingleTask 和 FLAG_ACTIVITY_CLEAR_TOP 之间的区别。似乎两者都以相同的方式工作。例如,我创建了 Activity A -> B -> c -> D -> E,其中 C 的启动模式是 SingleTask。现在,如果我从 E 打开 C,然后按回键,我会得到 A -> B -> c 当我使用 FLAG_ACTIVITY_CLEAR_TOP 从 E 启动 C 时,会发生同样的情况。不确定这两者之间有什么区别。

Dav*_*ser 5

如果您设置launchMode="singleTask"但未同时设置,taskAffinity<activity>启动模式将被忽略。这就是您认为行为没有差异的原因。

如果您设置launchMode="singleTask"taskAffinity=""打开C,然后拥有此任务堆栈:A->B,然后 B 启动 C,您最终将得到 2 个单独的任务:一个任务包含 A->B,另一个任务包含 C。按 HOME 按钮,您将在最近任务列表中看到应用程序的 2 个任务。