2

我有 5 个活动:A、B、C、D 和 E。

我可以从每个活动开始所有活动,但我希望 Back Stack 只保存最后一个活动。

例如:A->B->C->D。如果我在 D 中,我可以回到 C,但是现在,在 C 中,当我按下后退按钮时,我只想回到主要活动 (A)。

有可能吗?谢谢!

4

2 回答 2

1

当从 B -> C 转换时,在 Activity B 上调用 finish() 方法。这将防止 B 被放置在后堆栈上。

于 2013-04-03T17:29:51.303 回答
0

进入 C 并导航到 A 后,您可以清除后退堆栈。

A 到 BB 到 C. C 到 D.

返回 D 到 C

在 C 中,您可以使用以下内容。

  @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(C.this, A.class)
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//clear top of stack.
startActivity(myIntent);
finish();
return;
    }
于 2013-04-03T17:33:21.497 回答