在多个活动之间启动singleTop

时间:2018-01-18 07:35:42

标签: android android-activity launchmode

我在启动活动时理解singleTop概念时遇到了一些麻烦。

我们在清单文件中使用活动B定义了一些活动A,B,C,D和singleTop。

正如我读到的那样,如果我们将去A-> B-> C-> D-> D,则D活动的实例将不会创建,D将在堆栈的顶部。

但是,如果我们将会发生A-> B-> C-> D-> B,那么会发生什么? 将启动哪些活动以及哪些活动将在堆叠中排名第一?

请建议。

1 个答案:

答案 0 :(得分:0)

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

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

堆叠:A-B-C-D

但是如果堆栈就像A-B-C-D-B(B在顶部),然后你启动了D的活动,那么它只会创建一个D的新实例并放在堆栈的顶部。这是因为D不在堆栈顶部。

堆叠:A-B-C-D-B-D