后退button和上次活动

我的应用程序链接一些活动

如果你按下后退button,你回到旧的活动,然后你突然退出应用程序!

所以我需要显示一个消息,如“是否真的要退出”,如果这是堆栈上的最后一个活动

我知道如何覆盖后退button,但我不知道如何知道历史上有多less活动

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { // Is it the last activity on stack ? // so show confirm dialog return true; } return super.onKeyDown(keyCode, event); } 

请帮忙。

Solutions Collecting From Web of "后退button和上次活动"

你可以使用finish()函数来实现

 public void finish() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("do you really want to exit?"); builder.setCancelable(false); builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { quit(); } }); builder.setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create(); alert.show(); } public void quit() { super.finish(); }; 

你不需要知道历史上有多less活动,你可以这样做。单击后退button时调用onBackPressed()方法。然后在主活动中重写finish()方法以显示确认对话框。由于onBackPressed ()方法调用activity的finish()方法。当支持主活动时,调用覆盖的finish()方法,将会显示您已经覆盖的对话框。