7

我知道可以通过android:launchMode="singleInstance" 在清单文件中设置来实现单个实例。但我想在运行时这样做。我认为可以通过设置FLAG来实现,但不确定女巫之一..请帮助我..提前谢谢。

4

3 回答 3

10

通常,您可以使用 、 和 的组合Intent.FLAG_ACTIVITY_SINGLE_TOPIntent.FLAG_ACTIVITY_CLEAR_TOP完成Intent.FLAG_ACTIVITY_REORDER_TO_FRONTIntent.FLAG_ACTIVITY_NEW_TASK想要的。但是,使用哪一个(或多个)取决于您的情况。

于 2012-07-19T07:16:14.250 回答
4

这就是你要找的

Intent intent= new Intent(context, YourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);

更新:android:launchMode="singleInstance"清单中可能也需要

于 2012-07-19T07:12:06.960 回答
1

singleInstance指定启动或回收的活动将在新的或现有的任务上创建,并且不能在其上堆叠其他活动。系统将确保从它开始的任何活动都放在其他任务上。

1 项任务和 1 项活动。

据我所知,没有意图标志会阻止您的活动启动的进一步活动,而无需在所有新活动创建的意图中指定标志。

所以答案是这是不可能的

以前发布的答案模仿了它的外观,但行为违反了规范。

于 2016-08-21T18:04:32.173 回答