在多个活动之间启动单顶

Launch singleTop between multiple activites

我在理解启动 Activity 的 singleTop 概念时遇到了一些问题。

我们有一些活动 A、B、C、D 并且 singleTop 在清单文件中用 activity B 定义。

正如我读到的那样,如果我们将去 A->B->C->D->D,那么 D activity 的实例将不会创建并且 D 将位于堆栈顶部。

但是如果我们走 A->B->C->D->B 会发生什么? 哪个 activity 将启动,哪个将在堆栈顶部?

求推荐。

启动模式singleTop 仅适用于堆栈顶部 上的活动。

让堆栈为 A-B-C-D(D 在顶部)并且 D 是具有 singleTop 启动模式的 activity。如果您将另一个实例添加到此堆栈,则 D 将不会再次实例化,并且 D 的现有实例将收到对 onNewIntent().

的回调

堆栈:A-B-C-D

但是如果堆栈像 A-B-C-D-B(B 在顶部),然后您启动 D 的 activity,那么它将简单地创建一个新的 D 实例并放在顶部堆栈。这是因为D不在栈顶。

堆栈:A-B-C-D-B-D