在Android中,如果已经在堆栈中,如何启动活动或将该活动带到前面?

时间:2014-11-18 14:51:49

标签: java android android-intent android-activity android-pendingintent

在Android中,如果已经在堆叠中,如何启动活动或将该活动带到前面?

到目前为止,我知道开始一项新活动 myActivity ,如下面的代码所示。但我不想打开同一个类的第二个副本,如果它已经在堆栈上打开了。那么如何检查堆栈中是否存在如下所示的活动,如果存在,则将其置于前面。如果没有,请打开下面的新活动

Intent intent = new Intent(myActivity.this,
        myActivity.class);
startActivity(intent);

3 个答案:

答案 0 :(得分:2)

当您想要开始新活动

时,在意图中使用标记

http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT

Intent intent = new Intent(myActivity.this,
        myActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

答案 1 :(得分:0)

Intent intent = new Intent(myActivity.this,
        myActivity.class);
 intent .addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

答案 2 :(得分:0)

听起来您可能正在运行多个进程,或者通过其他调用启动Activity的其他实例来启动Activity。

您可能需要在清单中指定" singleInstance"或" singleTask" -

Android singleTask or singleInstance launch mode?

谨慎 - 这可能会产生一些其他意想不到的副作用。请务必针对不同的用例进行测试。