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()方法。

07-24 09:49
查看更多