点击两次返回键退出程序

总的来说,实则是使用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 @Override
14 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 stub
26     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 }

 

posted @ 2015-03-13 19:16  某某璀  阅读(433)  评论(0编辑  收藏  举报
levels of contents