Android实现双击退出应用

本文介绍了一种在Android应用中实现双击返回键退出应用程序的方法。通过使用Handler发送延迟消息来控制应用程序的状态,确保用户在短时间内连续点击两次返回键时才触发应用退出。

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

private boolean flag = true;   

private static final intWHAT_RESET_BACK=1;

privateHandlerhandler=newHandler() {

       @Override

       public voidhandleMessage(Message msg) {

       switch(msg.what) {

        caseWHAT_RESET_BACK:

        flag=true;

       break;

         }

      }

 };

    @Override

    public booleanonKeyUp(intkeyCode, KeyEvent event) {

      if(keyCode == KeyEvent.KEYCODE_BACK&&flag) {

      Toast.makeText(this,"再点击一次,退出应用", Toast.LENGTH_SHORT).show();

      flag=false;   //第一次点击进来把flag的值赋为false,第二次点击的时候由于if()里面的条件 不 成立,则直接走最后一步退出

      handler.sendEmptyMessageDelayed(WHAT_RESET_BACK,2000);  

      return true;      //返回true不退出,不走最后一步,所以不退出应用

   }

     return super.onKeyUp(keyCode, event);//退出

}

   思路解释:

   首先需要在MainActivity里面重写onKeyUp方法:

        keyCode == KeyEvent.KEYCODE_BACK && flag  判断是否按了手机上的返回键  flag默认为true

         private boolean flag = true;      //声明一个boolean值,默认为true
    然后使用Handler发送一个延迟2秒的消息:

                         //两秒后发送一个消息,如果两秒内点击了两次的话,就直接跳最后一步退出应用,因为第一次进来的时候已经把flag的值设为false

                         // if()里面的条件不成立,所以直接跳最后一步(return super.onKeyUp(keyCode, event);//退出)

                                       handler.sendEmptyMessageDelayed(WHAT_RESET_BACK,2000);   

                        //如果两秒内没有点击第二次的话,发送消息就执行下面代码

                                    case WHAT_RESET_BACK :

                                            flag=true;       //把值设为恢复为true,两秒后再次点击进来就不会执行  return super.onKeyUp(keyCode, event);,等于又重新认为你是第一次点击

                                               break;


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值