我有一个有4或5个活动的应用程序!让我们说A,B,C,D和E.
或多或少可以从每个活动跳到其他所有活动!
让我们说用户去A - > B - > E - > d。
现在他想打开B(再次)。我现在希望我的应用程序能够识别,活动堆栈中已经存在一个活动B并重新激活它(或者至少完成旧B并创建一个新B)。
我不想在创建新活动时完成所有活动,因为用户可能经常使用后退按钮。
可能的解决方案是:自己创建一个活动堆栈并以捆绑方式处理它或使用一些静态结构。
但必须有一个更简单/更好的方式,是吗?
感谢您的帮助!
答案 0 :(得分:3)
您可以在清单中的启动模式标记中使用singleInstance
值或singleTask
值。
android:launchMode=["multiple" | "singleTop" |"singleTask" | "singleInstance"]
According to android developers fundamentals
singleTask
和singleInstance
模式在某方面也各不相同:
singleTask
活动允许其他活动成为其任务的一部分。它始终是其任务的根源,但其他活动(必须standard
和singleTop
活动)可以启动到该任务中。
另一方面,singleInstance
活动不允许其他活动成为其任务的一部分。这是任务中唯一的活动。如果它启动另一个活动,则该活动将分配给另一个任务 - 就好像FLAG_ACTIVITY_NEW_TASK
在意图中一样。