点击两次返回键退出程序

总的来说,实则是使用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 }

 

转载于:https://www.cnblogs.com/pngcui/p/4335811.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值