从堆栈中删除活动

时间:2013-04-04 13:48:27

标签: android

我有2个活动,通常我打开活动A然后打开活动B.

如果用户点击通知并且应用程序根本没有运行,则B首先打开。然而,当用户单击up / actionbackHome按钮时,用户应该被带回A.我通过覆盖up / actionbarHome按钮并启动活动A并在B上调用finish来完成此操作。这样就好像用户点击它们一样正常退出应用程序。

问题是在此之后,当用户从任务管理器中选择此任务时,活动B将打开。在这种情况下,如何确保活动A打开?

修改

所以我认为问题在于,当我通过通知打开应用程序后存在应用程序时,应用程序仍然在任务管理器中。因此,如果我通过任务管理器进入应用程序,它将以与通知相同的方式启动它。如何阻止此行为?

1 个答案:

答案 0 :(得分:0)

尝试以下

清除后台并返回A

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        onBackPressed();

    }

    return super.onKeyDown(keyCode, event);
}

public void onBackPressed() {
    Intent myIntent = new Intent(B.this,A.class);
    myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//clear top of stack.
    startActivity(myIntent);
    finish();
    return;
}