你的位置:首页 > 操作系统

[操作系统]点击两次返回键退出程序


总的来说,实则是使用onKeyDown方法进行监听按钮点击事件,并作出相应处理,一共有两种方式实现该功能。
 
第一种是使用消息传递机制,使用Handle()传递消息的间隔时间内若进行了再次点击返回键则退出程序
代码如下:
 1 private static boolean isExit = false; 2  3 Handler mHandler = new Handler(){ 4  5   @Override 6   public void handleMessage(Message msg) { 7     // TODO Auto-generated method stub 8     super.handleMessage(msg); 9     isExit = false;10   }11 };12 13 @Override14 public boolean onKeyDown(int keyCode, KeyEvent event){ 15     if (keyCode == KeyEvent.KEYCODE_BACK ) { 16        exit(); 17       return false; 18     } 19     return super.onKeyDown(keyCode, event); 20      21   }22 23 24 private void exit() {25 // TODO Auto-generated method stub26   if(!isExit){27     isExit = true;28     Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();29     mHandler.sendEmptyMessageDelayed(0, 2000);30   }31   else{32     finish();33     System.exit(0);34   }35 }         

 

第二种方式是计算点击按钮的时间差

 1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3   if (keyCode == KeyEvent.KEYCODE_BACK) { 4     exit(); 5     return false; 6   } 7   return super.onKeyDown(keyCode, event); 8 } 9 10 public void exit() {11   if ((System.currentTimeMillis() - exitTime) > 2000) {12     Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show();13     exitTime = System.currentTimeMillis();14   } 15   else {16     finish();17     System.exit(0);18   }19 }