如何清除以前的活动堆栈和退出应用程序后退button?

朋友们,

我有三个活动

A,B,C

A是主屏幕。

活动按照A-> B-> C启动

如果我来到主屏幕使用后退我想清除活动堆栈/以前的活动历史,它应该退出应用程序。

任何一个指导我如何实现这一目标?

Related of "如何清除以前的活动堆栈和退出应用程序后退button?"

非常简单:使用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 关于用于开始活动的意图A.

你可以做以下事情:
1.在AndroidManifest中,在活动声明A中设置clearTaskOnLaunch =“true”
2.在活动C:

 @Override public void onBackPressed(){ moveTaskToBack(true); } 

所以如果用户按回来 – 如果用户再次启动应用程序返回到主屏幕 – 任务堆栈清除,他来到根活动(A)

在活动A中试试这个:

 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){ finish(); } return super.onKeyDown(keyCode, event); } 

这应该确保如果你点击后退button,活动finish() 。 如果此活动位于堆栈底部,则应退出该活动。

我认为compostus是真的,但如果不是,从A你可以启动B与startActivityForResult()和onActivityResult()处理收到的“消息”。 如果后退button被按下,则活动B将发送“CLOSE_ACTIVITY”消息。