Android的再按一次后退事件的处理
1.首先。创建你的项目,打开你的MainActivity.java文件。onCreate();方法是你的程序的入口是一个Activity的生命周期的第一个执行方法。在这里就不多说了。
2.在onCreate方法后面。重写一个 方法。
public void onBackPressed() {//重写改方法。
super.onBackPressed();//删除该行后,当你在执行你的程序时。你会发现你单机后退键的时候程序没有任何的响应。
}
3.开始真正的书写代码。实现响应。
int index=0;//定义一个变量。 @Override
public void onBackPressed() {
if (index <= 0) {
Toast.makeText(this, "再按一次,退出应用。。。", Toast.LENGTH_SHORT).show();//添加一个Toast的显示提示。非常简单,就不多说了。
index++;//当程序执行一次后,我没们讲变量值改变加一,便于第二次获取。
} else {
finish();//该关键词是,退出程序到后台。
}
}
4.当执行完以上的代码后,虽然可以实现退出功能,但是还有美中不足的地方。当用户不是想退出 ,而是一次的误操作呢。当然这时就不能够满足用户的需求。
5.此时我们就应该对此功能的优化。(代码如下)
private long LastTime=0;//定义一个变量时间。
public void onBackPressed() {
if (LastTime <= 0) {//对变量值进行判断,
Toast.makeText(this, "再按一次,退出应用。。。", Toast.LENGTH_SHORT).show();//添加一个Toast的显示提示。非常简单,就不多说了。
LastTime=System.currentTimeMillis();//获取时间值为 运行此方法开始到此刻的时间。
} else{
long CyrentTime=System.currentTimeMillis();//再次定义一个点击时间。获取运行到当前的时间。
if(CyrentTime-LastTime<1000){//判断如果用户的操作时间在一秒以内。则执行finish()方法。
finish();
}else{
LastTime=CyrentTime;//最后将最后一次的时间赋值给lastTime,进行多次的循环。
}
}
}
6.部署到模拟器后,不出意外的话,应该次功能就已经可以顺畅的执行了。