1、按返回时弹出退出提示 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub Log.e("OtherActivity", "onKeyDown, keyCode: "+keyCode); if (keyCode == KeyEvent.KEYCODE_BACK) { ShowExitTooltip(OtherActivity.this); return true; } return super.onKeyDown(keyCode, event); } public static void ShowExitTooltip(Context context) { AlertDialog.Builder builder = new Builder(context); builder.setMessage("确定要退出吗?"); builder.setTitle("提示"); builder.setIcon(android.R.drawable.ic_dialog_alert); builder.setPositiveButton("确认", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); android.os.Process.killProcess(android.os.Process.myPid()); } }); builder.setNegativeButton("取消", new android.content.DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); } 2、提示双击返回退出 A:利用Handler延迟发送更改状态信息 // 定义一个变量,来标识是否退出 private static boolean isExit = false; Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); isExit = false; } }; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { exit(); return false; } return super.onKeyDown(keyCode, event); } private void exit() { if (!isExit) { isExit = true; Toast.makeText(getApplicationContext(), "双击退出程序", Toast.LENGTH_SHORT).show(); // 利用handler延迟发送更改状态信息 mHandler.sendEmptyMessageDelayed(0, 2000); } else { finish(); System.exit(0); } } B:通过记录按键时间计算时间差实现 private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { exit(); return false; } return super.onKeyDown(keyCode, event); } public void exit() { if ((System.currentTimeMillis() - exitTime) > 2000) { Toast.makeText(getApplicationContext(), "双击退出程序", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { finish(); System.exit(0); } }
Android防误按返回退出程序
最新推荐文章于 2019-11-09 15:44:39 发布