Android中实现点击两次返回按键退出应用的功能

背景

很多应用都有点击两次返回按键才退出应用的功能,像熊猫直播app。当然也有点击返回按键,弹出对话选择框提示用户操作的,像是爱奇艺app。作为开发者来讲:我觉得这样做的好处是可以防止用户不小心点击了一次返回按键而直接退出应用。


代码实现

思路:通过重写onKeyDown(int keyCode, KeyEvent event)方法,然后根据用户是否点击了返回按键,然后实现对应的提示操作。这里我设置两次的点击间隔小于2s才能退出应用。

private FragmentManager manager = getSupportFragmentManager();

    private long firstTime;// 记录点击返回时第一次的时间毫秒值

    /**
     * 重写该方法,判断用户按下返回按键的时候,执行退出应用方法
     * @param keyCode
     * @param event
     * @return
     */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK){// 点击了返回按键
            if(manager.getBackStackEntryCount() != 0){
                manager.popBackStack();
            }else {
                exitApp(2000);// 退出应用
            }
            return true;// 返回true,防止该事件继续向下传播
        }
        return super.onKeyDown(keyCode, event);
    }

    /**
     * 退出应用
     * @param timeInterval 设置第二次点击退出的时间间隔
     */
    private void exitApp(long timeInterval) {
        // 第一次肯定会进入到if判断里面,然后把firstTime重新赋值当前的系统时间
        // 然后点击第二次的时候,当点击间隔时间小于2s,那么退出应用;反之不退出应用
        if(System.currentTimeMillis() - firstTime >= timeInterval){
            ToastUtil.showToast(this, "再按一次退出程序");
            firstTime = System.currentTimeMillis();
        }else {
            finish();// 销毁当前activity
            System.exit(0);// 完全退出应用
        }
    }

上面主要关注我的exitApp(2000)这个方法就行,因为主要的退出应用的逻辑就在里面。注释写的很清晰,就不多说了。


A little bit of progress every day!Come on!

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值