原理很简单:定义一个TimerTask定时器和一个是否退出程序的标志isExit。第一次按返回键时,赋值isExit标志为True,开启定时器TimerTask任务,两秒钟后赋值isExit标志为false,所以用户在这两秒钟之内,再按一次返回键,则退出程序。否则定时器TimerTask任务执行,赋值isExit标志为false。
private static Boolean isExit = false;// 是否退出程序
private static Timer tExit = null;// 定时触发器
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (isExit == false) {
isExit = true;
if(tExit != null) {
tExit.cancel();//将原任务从队列中移除
}
//重新实例一个定时器
tExit = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
isExit = false;
}
};
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
//延时两秒触发task任务
tExit.schedule(task, 2000);
} esle {
finish();
System.exit(0);
}
return true;
}
return super.onKeyUp(keyCode, event);
}
共同学习,写下你的评论
评论加载中...
作者其他优质文章