3

我有一个包含 4 或 5 个活动的应用程序!假设 A、B、C、D 和 E。

从每个活动跳到每个其他活动或多或少都是可能的!

假设一个用户去 A -> B -> E -> D。

现在他想(再次)打开 B。我现在希望我的应用程序能够识别活动堆栈中某处已经存在一个活动 B 并重新激活它(或至少完成旧 B 并创建一个新 B)。

我不想在创建新活动时完成所有活动,因为用户很可能经常使用后退按钮。

可能的解决方案是:自己创建一个活动堆栈并以包的形式处理它或使用一些静态结构。

但是必须有一个更简单/更好的方法,是吗?

谢谢你的帮助!

4

1 回答 1

3

您可以在清单中的启动模式标签中使用singleInstancevalue 或singleTaskvalue。

android:launchMode=["multiple" | "singleTop" |"singleTask" | "singleInstance"]

根据android开发者基础

和模式singleTasksingleInstance仅在一个方面彼此不同:

singleTask活动允许其他活动成为其任务的一部分。它始终位于其任务的根部,但其他活动(必要standardsingleTop活动)可以启动到该任务中。

singleInstance另一方面,活动不允许其他活动成为其任务的一部分。这是任务中的唯一活动。如果它启动另一个活动,则该活动被分配给不同的任务——就好像FLAG_ACTIVITY_NEW_TASK在意图中一样。

于 2012-04-27T14:07:25.943 回答