我知道可以通过在清单文件中设置android:launchMode="singleInstance"
来实现单个实例。但我想在运行时这样做。我认为可以通过设置 FLAG 来实现,但不能确定女巫... plzz帮助我...提前感谢。
答案 0 :(得分:8)
通常,您可以结合使用Intent.FLAG_ACTIVITY_SINGLE_TOP
,Intent.FLAG_ACTIVITY_CLEAR_TOP
,Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
和Intent.FLAG_ACTIVITY_NEW_TASK
来完成您想要的工作。但是,使用哪一个(或多个)取决于您的情况。
答案 1 :(得分:3)
这就是你要找的东西
Intent intent= new Intent(context, YourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
更新:Manifest中也可能需要android:launchMode="singleInstance"
答案 2 :(得分:0)
singleInstance 指定将在新任务或现有任务上创建已启动或已回收的活动,并且不能将任何其他活动堆叠在其上。系统将确保从它开始的任何活动都被用于其他任务。
1个任务和1个活动。
我知道没有意图标志会阻止您的活动启动的其他活动,而无需在所有新活动的创建意图中指定标记。
所以答案是这是不可能的。
之前发布的答案模仿了它的外观,但行为违背了规范。