您的位置:首页 > 移动开发 > Android开发

Android实现双击back键退出程序

2018-03-13 09:39 369 查看
在很多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:    点击打开链接

4000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: