我在启动活动时理解singleTop概念时遇到了一些麻烦。
我们在清单文件中使用活动B定义了一些活动A,B,C,D和singleTop。
正如我读到的那样,如果我们将去A-> B-> C-> D-> D,则D活动的实例将不会创建,D将在堆栈的顶部。
但是,如果我们将会发生A-> B-> C-> D-> B,那么会发生什么? 将启动哪些活动以及哪些活动将在堆叠中排名第一?
请建议。
答案 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