android中活动的单个实例

android中活动的单个实例,android,android-intent,Android,Android Intent,我知道可以通过在menifest文件中设置android:launchMode=“singleInstance”来实现单个实例。但我想在运行时这样做。我认为可以通过设置标志来实现,但不确定是否设置了一个。。请帮帮我。。提前谢谢。这就是你要找的 Intent intent= new Intent(context, YourActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SIN

我知道可以通过在menifest文件中设置
android:launchMode=“singleInstance”
来实现单个实例。但我想在运行时这样做。我认为可以通过设置标志来实现,但不确定是否设置了一个。。请帮帮我。。提前谢谢。

这就是你要找的

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

更新:
android:launchMode=“singleInstance”
在清单中也可能需要

通常,您可以结合使用
Intent.FLAG\u ACTIVITY\u SINGLE\u TOP
Intent.FLAG\u ACTIVITY\u CLEAR\u TOP
Intent.FLAG\u ACTIVITY\u REORDER\u TO\u FRONT
Intent.FLAG\u ACTIVITY\u NEW\u TASK
以完成您想要的任务。但是,使用哪一个(或多个)取决于您的情况。

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

1项任务和1项活动

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

因此答案是这是不可能的


先前发布的答案模拟了这一情况,但其行为违反了规范。

不要使用
singleInstance
启动模式。这仅适用于主屏幕更换。请更详细地解释您的工作流程是什么,以及当您真正只需要一个实例时,您将从何处获得多个实例。在我的活动中,我有一个listview,我通过从数据库中获取值来填充它。和一些其他按钮,以启动新的活动,如过滤器等。。我从SD卡中的csv文件中导入值,单击“导入”按钮,这是我不希望立即重新创建活动的地方。希望我说得很清楚..不,它不起作用。当我通过设置标记onCreate()方法返回到我的活动时,它仍然在执行,当我在menifest中硬编码它时,它没有发生。尝试了你的建议,并将标记活动重新排序到前面,它现在运行良好。让我再测试几个场景。