Activity A -> Activity B -> Activity C -> Activity D
。在活动D中按后退将使用户离开应用程序,而在活动C,B和A中后退应正常工作,即C -> back -> B -> back A -> back -> exit
。
我尝试使用Activity.FLAG_ACITIVITY_CLEAR_TOP,
等设置标志。似乎没有任何作用。最低API等级7。
最佳答案
对于#1 Pressing back in Activity D should navigate user out of the application
在ActivityD中,您可以重写onBackPressed或onKeyDown方法,然后使用带有退出标志的标志FLAG_ACTIVITY_CLEAR_TOP启动ActivityA(通过putExtra方法)。在ActivityA中,您可以获取该退出标志值,如果将退出标志设置为true,则可以调用finish()。
在活动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 Exit from ActivityA
您可以简单地在onBackPressed或onKeyPressed上调用finish()方法。