private static Boolean isExit = false; private static Boolean hasTask = false; Timer tExit = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { isExit = false; hasTask = true; } };public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode == KeyEvent.KEYCODE_BACK){// System.out.println("user back down"); if(isExit == false ) { isExit = true; Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); if(!hasTask) { tExit.schedule(task, 2000); }} else { } finish(); System.exit(0); } } return false; }
?
1 楼 xiaocq203 2012-03-11
public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){ if(isExit == false){ isExit = true; Toast.makeText(this, R.string.tip_back_exit, Toast.LENGTH_SHORT).show(); if(!hasTask){ tExit.schedule(task, 2000); } }else{ finish(); System.exit(0); } } return false; }
你的排版有点乱…括号什么的不对劲,更正之…顺便,感谢分享…
2 楼 xiaoxaoAndroid 前天
第三次按返回键时会退出程序啊!
第一次按的时候
isExit = false;
hasTask = true;
第二次按的时候(过2秒后)
isExit = true;
hasTask = true;
没有执行下面这句
mTimer.schedule(task, 2 * 1000);
第三次按的时候(过2秒后)
isExit = true;直接退出
第一次按的时候
isExit = false;
hasTask = true;
第二次按的时候(过2秒后)
isExit = true;
hasTask = true;
没有执行下面这句
mTimer.schedule(task, 2 * 1000);
第三次按的时候(过2秒后)
isExit = true;直接退出