我有三项活动:
A,B,C
A是主屏幕。
按照以下A->B->C
如果我使用后退按钮进入主屏幕,我想清除活动堆栈/以前的活动历史记录,它应该退出应用程序。
任何人都可以指导我如何实现这一目标吗?
答案 0 :(得分:13)
非常简单:对用于启动活动A的意图使用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
。
答案 1 :(得分:3)
您可以执行以下操作:
1.在活动声明A中设置AndroidManifest中的clearTaskOnLaunch = "true"
2.在活动C中:
@Override
public void onBackPressed(){
moveTaskToBack(true);
}
因此,如果用户按下 - 它会回到主屏幕 如果用户再次启动应用程序 - 任务堆栈清除,他进入根活动(A)
答案 2 :(得分:0)
在活动A中试试这个:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
finish();
}
return super.onKeyDown(keyCode, event);
}
这应确保如果您点击后退按钮,则活动为finish()
。如果此活动位于堆栈的底部finish
,则应退出活动。
答案 3 :(得分:0)
我认为compostus是真的,但如果没有,从A你可以使用startActivityForResult()启动B,并在onActivityResult()中处理收到的“消息”。 如果按下后退按钮,活动B将发送“CLOSE_ACTIVITY”消息。