Android退出程序时的"再按一次退出"实现

 

个人觉得当用户按下后退键时,出现"再按一次退出"的提示防止误操作比弹出一个对话框是会更人性化的。话不多说上代码:

第一种:重写onKeyDown来监听:

[java]  view plain copy
 
  1.        long waitTime = 2000;  
  2. long touchTime = 0;  
  3.   
  4. @Override  
  5. public boolean onKeyDown(int keyCode, KeyEvent event) {  
  6.     if(event.getAction() == KeyEvent.ACTION_DOWN && KeyEvent.KEYCODE_BACK == keyCode) {  
  7.         long currentTime = System.currentTimeMillis();  
  8.         if((currentTime-touchTime)>=waitTime) {  
  9.             Toast.makeText(this"再按一次退出", Toast.LENGTH_SHORT).show();  
  10.             touchTime = currentTime;  
  11.         }else {  
  12.             finish();  
  13.         }  
  14.         return true;  
  15.     }  
  16.     return super.onKeyDown(keyCode, event);  
  17. }  


 

第二种是重写onBackPressed方法直接监听返回键:

 

[java]  view plain copy
 
  1.          
  2.        long waitTime = 2000;  
  3. long touchTime = 0;  
  4.   
  5. @Override  
  6. public void onBackPressed() {  
  7.     long currentTime = System.currentTimeMillis();  
  8.     if((currentTime-touchTime)>=waitTime) {  
  9.         Toast.makeText(this"再按一次退出", Toast.LENGTH_SHORT).show();  
  10.         touchTime = currentTime;  
  11.     }else {  
  12.         finish();  
  13.     }  
  14. }  

 

实现代码是一样的只是重写的方法不同罢了。

 

如果你需要同时重写这两个方法,可能要注意一些问题啦!系统先是onKeyDown,如果return true了,就不会onBackPressed啦!

转载于:https://www.cnblogs.com/hudabing/archive/2013/05/31/3110430.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值