退出的代码通用的,只能有一个那就是建立一个栈,将所有的Activity弹进去,然后全部退出就只要手工全部弹出就行了,其他的方法都只能退出当前栈顶的那一个。因为android里面的对Activity的存储就是一个栈存储的。你自己建立一个栈就可以完全管理所有的Activity了。
1 重写OnKeyDown方法,试试下面的代码。
2 @Override
3 public boolean onKeyDown(int keyCode, KeyEvent event) {
4 // TODO Auto-generated method stub
5 if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
6 dialog();
7 return false;
8 }
9 return false;
10 }
11
12 protected void dialog() {
13
14 AlertDialog.Builder builder = new Builder(YourActivity.this);
15 builder.setMessage("确定退出吗?");
16 builder.setTitle("退出提示");
17 builder.setPositiveButton("确定",
18 new android.content.DialogInterface.OnClickListener() {
19 @Override
20 public void onClick(DialogInterface dialog, int which) {
21 dialog.dismiss();
22 finish();
23 }
24 });
25 builder.setNegativeButton("取消",
26 new android.content.DialogInterface.OnClickListener() {
27 @Override
28 public void onClick(DialogInterface dialog, int which) {
29 dialog.dismiss();
30 }
31 });
32 builder.create().show();
33 }
1 MyActivity.java:
2 public boolean onKeyDown(int keyCode, KeyEvent event) {
3 if (keyCode == KeyEvent.KEYCODE_BACK) {
4 new AlertDialog.Builder(MainActivity.this)
5 .setTitle("真的要离开?")
6 .setMessage("你确定要离开")
7 .setPositiveButton("确定",
8 new DialogInterface.OnClickListener() {
9 public void onClick(DialogInterface dialog,
10 int which) {
11 MyActivity.this.finish();
12 }
13 }).show();
14
15 }
16 }