记得以前要Back退出时候、都是给一个AlertDialog对话框、确定和取消,记时起:这种提示很少了!取而代之为:Back返回给予一个Toast()提示:"再次点击退出",占用空间少,代码少,也是一种防止退出的操作!
思路:
①:
重写: public boolean onKeyDown(int keyCode, KeyEvent event)()
拦截Back按键,而不是重写onBackPressed()!
②:
给以个boolean用于判断条件,在第一次点击后改变数值,方便"第二次"能够退出!
*这里思考一下,假如:不小心点到,Back返回,当时肯定不会点击第二次退出!玩着玩着、糊涂蛋... 又点击点返回,完蛋了 这次一定退出了,原因:状态数值没有改变!
如何改变?一般用于个一个时间差、在2--3s之间没有再次点击Back()就改变数值,不然的话直接退出! 人性话、好戏没啥好解释的!呵呵...
当然“时间差”的操作很多.. 最长用的莫不于线程、定时器了!
源码:
// 判断条件
private boolean isFirst = false;
private Timer timer = new Timer();
/**
* 定时任务
*
* @author asus
*/
class MyTask extends TimerTask {
@Override
public void run() {
// 赋初值
isFirst = false;
}
}
/**
* 重新监听Back按键
**/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
if (!isFirst) {
isFirst = true;
getToast("再点击一次退出...");
// 一般2s
timer.schedule(new MyTask(), 2000);
} else {
System.exit(0);
}
}
return false;
}
/**
* Toast函数
* @param message
* 提示内容
*/
public void getToast(String message) {
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
}