[email protected]
?public boolean onKeyDown(int keyCode, KeyEvent event) {
??if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
???// 确认对话框
???final AlertDialog isExit = new AlertDialog.Builder(this).create();
???// 对话框标题
???isExit.setTitle("系统提示");
???// 对话框消息
???isExit.setMessage("确定要退出吗");
???// 实例化对话框上的按钮点击事件监听
???DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
????public void onClick(DialogInterface dialog, int which) {
?????switch (which) {
?????case AlertDialog.BUTTON1:// "确认"按钮退出程序
??????//finish();原来用的finish,后来发现finishe不能完全退出
??????ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
??????am.restartPackage(getPackageName());
??????break;
?????case AlertDialog.BUTTON2:// "取消"第二个按钮取消对话框
??????isExit.cancel();
??????break;
?????default:
??????break;
?????}
????}
???};
???// 注册监听
???isExit.setButton("确定", listener);
???isExit.setButton2("取消", listener);
???// 显示对话框
???isExit.show();
???return false;
??}
??return false;
?}
?
?
注:用?ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
??????am.restartPackage(getPackageName());可以完全退出,注意在AndroidManifest.xml文件里设置:
<uses-permission android:name="android.permission.RESTART_PACKAGES"></uses-permission>
<uses-permission android:name="android.permission.RESTART_PACKAGES"></uses-permission>
也加了