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

本文介绍了一种在安卓应用中防止用户误触返回键的方法。通过重写onKeyDown和onBackPressed方法,实现再按一次退出的功能,有效减少因用户误操作导致的应用意外关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

第一种:重写onKeyDown来监听:

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


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

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

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


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值