在Android中,如果已经在堆叠中,如何启动活动或将该活动带到前面?
到目前为止,我知道开始一项新活动 myActivity ,如下面的代码所示。但我不想打开同一个类的第二个副本,如果它已经在堆栈上打开了。那么如何检查堆栈中是否存在如下所示的活动,如果存在,则将其置于前面。如果没有,请打开下面的新活动
Intent intent = new Intent(myActivity.this,
myActivity.class);
startActivity(intent);
答案 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?
谨慎 - 这可能会产生一些其他意想不到的副作用。请务必针对不同的用例进行测试。