我有 5 个活动:A、B、C、D 和 E。
我可以从每个活动开始所有活动,但我希望 Back Stack 只保存最后一个活动。
例如:A->B->C->D。如果我在 D 中,我可以回到 C,但是现在,在 C 中,当我按下后退按钮时,我只想回到主要活动 (A)。
有可能吗?谢谢!
我有 5 个活动:A、B、C、D 和 E。
我可以从每个活动开始所有活动,但我希望 Back Stack 只保存最后一个活动。
例如:A->B->C->D。如果我在 D 中,我可以回到 C,但是现在,在 C 中,当我按下后退按钮时,我只想回到主要活动 (A)。
有可能吗?谢谢!
当从 B -> C 转换时,在 Activity B 上调用 finish() 方法。这将防止 B 被放置在后堆栈上。
进入 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;
}