我的应用程序中有两个活动(A和B),还有一些BroadcastReceiver。

我遇到以下情况:

A正在运行,并使用“主页”按钮已关闭(已调用onStop)。

一段时间后,BroadcastReceiver出于某种意图被触发。它运行以下代码:

            Intent activityIntent = new Intent(context,
                    B.class);
            activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_CLEAR_TOP);

            context.startActivity(activityIntent);


B确实开始了,但是A也位于B的后面。如何避免A出现在前面?

最佳答案

当您按下主屏幕按钮时,您实际上并没有关闭该应用程序(我是说它处于暂停状态),而是处于后堆栈中,每当您启动同一应用程序的新活动并关闭该活动时,它就会在后堆栈中弹出顶部活动。因此,如果您不需要这种情况,请尝试执行以下代码

@Override
public void onStop() {
    if(!isFinishing())
       finish();
    super.onStop();
}

关于android - 其他 Activity 也可以在StartActivity上看到,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25405661/

10-09 15:59