Activity A -> Activity B -> Activity C -> Activity D
。在 Activity D 中按“后退”应将用户导航出应用程序,而“后退”应在 Activity C、B 和 A 中正常工作。即 C -> back -> B -> back A -> back -> exit
.
我尝试使用 Activity.FLAG_ACITIVITY_CLEAR_TOP,
等设置标志,并使用不同的组合。似乎什么都不起作用。最低 API 级别 7。
最佳答案
对于 #1 在 Activity D 中按返回键应将用户导航出应用程序
在 ActivityD 中,您可以重写 onBackPressed 或 onKeyDown 方法,然后使用标志 FLAG_ACTIVITY_CLEAR_TOP 和退出标志启动 ActivityA(通过 putExtra 方法)。在 ActivityA 中,您可以获得退出标志值,如果退出标志设置为 true,则调用 finish()。
在 Activity A 的 onCreate 方法中,您需要做的是
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
在ActivityD的onBackPressed或onKeyPressed方法中,
intent = (this, ActivityA.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
对于 #2 从 ActivityA 退出
您可以简单地在 onBackPressed 或 onKeyPressed 上调用 finish() 方法。
关于android - 如何正确删除所有 Activity 堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12492576/