第一步:声明一个标记变量用来判断是否需要退出
第二步:重写handlerMessage方法
第三步:自定义一个exit()方法给标记变量赋值
第四步:重写onKeyDown方法
1 private static boolean isExit=false; 2 //按两次退出 3 Handler mHandler=new Handler(){ 4 @Override 5 public void handleMessage(Message msg) { 6 super.handleMessage(msg); 7 isExit=false; 8 } 9 }; 10 11 12 @Override 13 public boolean onKeyDown(int keyCode, KeyEvent event) { 14 if(keyCode== KeyEvent.KEYCODE_BACK){ 15 exit(); 16 return false; 17 } 18 return super.onKeyDown(keyCode, event); 19 } 20 21 private void exit(){ 22 if(!isExit){ 23 isExit=true; 24 Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); 25 //利用handler延迟发送更改状态信息 26 mHandler.sendEmptyMessageDelayed(0,2000); 27 }else { 28 finish(); 29 System.exit(0); 30 } 31 }