Android 实现按两次返回键退出程序

[java]  view plain copy
  1. // 是否退出程序  
  2. private static Boolean isExit = false;  
  3. // 定时触发器  
  4. private static Timer tExit = null;  

[java]  view plain copy
  1. public boolean onKeyUp(int keyCode, KeyEvent event) {  
  2.   
  3.     if (keyCode == KeyEvent.KEYCODE_BACK) {  
  4.         if (isExit == false) {  
  5.             isExit = true;  
  6.             if (tExit != null) {  
  7.                 tExit.cancel(); // 将原任务从队列中移除  
  8.             }  
  9.             // 重新实例一个定时器  
  10.             tExit = new Timer();  
  11.             TimerTask task = new TimerTask() {  
  12.                 @Override  
  13.                 public void run() {  
  14.                     isExit = false;  
  15.                 }  
  16.             };  
  17.             Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();  
  18.             // 延时两秒触发task任务  
  19.             tExit.schedule(task, 2000);  
  20.         } else {  
  21.             finish();  
  22.             System.exit(0);  
  23.         }  
  24.         return true;  
  25.     }  
  26.     return super.onKeyUp(keyCode, event);  
  27. }  

原理很简单:定义一个TimerTask定时器和一个是否退出程序的标识isExit,第一次按返回键,赋值isExit标识为true,开启定时器TimerTask 任务,两秒钟后赋值isExit标识为false,所以用户在这两秒中内再按一次返回键,则退出程序。否则定时器TimerTask任务执行,标志为false。原理就是这么简单~


你可能感兴趣的:(Android 实现按两次返回键退出程序)