Android实现双击back键退出程序

在很多app中,都是点击一次back键,然后  弹出一个弹窗 "再点一次退出应用",然后在  一段时间内再次点击就能退出应用,这样还能防止用户误点back键退出应用。效果图如下:


emm,很简单。就是重写了onKayDown的方法。用三个变量来实现 . 

long firstClick, secondClick;

boolean isFirstClick = true;

如果点击的是back键,首先判断是不是第一次点击back键,如果是的话,

就将  当前时间  赋值给  firstClick, 将  isFirstClick  赋值为false,然后toast弹出“再次点击退出应用”,

如果再点击一次,将当前时间赋值给secondClick, 判断两次时间差是否小于1500毫秒。即

secondClick - firstClick < 1500?,如果小于的话,说明是两次连续双击,就直接finish掉退出应用,

否则的话,将secondClick的值赋值给firstClick,然后弹出 toast“再次点击退出应用”

代码:

private long firstClickTime = 0,secondClickTime = 0;
    private boolean isFirstClick = true;
 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK){
            if(isFirstClick){
                firstClickTime = System.currentTimeMillis();
                showToast();
                isFirstClick = false;
                return true;   //return true 表示 "自己" 处理按键答复,即不会退出应用
            }else {
                secondClickTime = System.currentTimeMillis();
                if(secondClickTime-firstClickTime<1500){
                    finish();
                }else {
                    firstClickTime = secondClickTime;
                    showToast();
                    return true;
                }
            }

        }
        return super.onKeyDown(keyCode, event);
    }
 private void showToast()
    {
        Toast toast = new Toast(this);
        toast.setView(LayoutInflater.from(this).inflate(R.layout.toast_layout,null));
        toast.setDuration(Toast.LENGTH_SHORT);
        toast.show();
    }
emmm,于是就好啦。


上一篇讲的是如何实现例图中的个性Toast:    点击打开链接


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值