现在大多数应用都有点两次后退键退出程序,防止用户误操作。我觉得这是一个很和谐的设计,和注册输入两次密码防遗忘有着异曲同工之妙,其实生活中大多数行为也有着相似的
地方,比如:出门锁门再拧一下,把钱包放口袋再拍一下,敲完代码再回车一下,哈哈,瞎扯了~
下面说正事:
再按一次退出程序
思路是这样的:本质上我们是需要获取两次点击时间的间隔,然后作出逻辑判断。
首先,声明一个第一次点击的时间,设置为0
private long firstTime=0;
然后获取系统当前时间,减去第一次点击的时间,如果大于两秒,则提示Toast,若小于两秒则退出,执行System.exit(0);
System.currentTimeMillis()-firstTime;
第一次点击肯定Toast,不过没关系,我们此时给firstTime赋值为当前时间(第一次点击的时间)
第二点击再用当前时间-firstTime=间隔时间
如果小于两秒,则退出
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK && event.getAction()==KeyEvent.ACTION_DOWN){
if((System.currentTimeMillis()-firstTime) > 2000){
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
firstTime = System.currentTimeMillis();
} else {
finish();
System.exit(0);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
}