思路1:记录上次点击的时间,,与本次点击的时间比较,当两次时间间隔小于一定值时,退出,否则提示“再按一次退出程序”,同时更新上次点击时间
private long firstTime = 0;@Override public boolean onKeyUp(int keyCode, KeyEvent event) {// TODO Auto-generated method stubswitch(keyCode){case KeyEvent.KEYCODE_BACK:long secondTime = System.currentTimeMillis();if (secondTime – firstTime > 2000) {//如果两次按键时间间隔大于2秒,则不退出Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();firstTime = secondTime;//更新firstTimereturn true;} else {//两次按键小于2秒时,退出应用System.exit(0);}break;}return super.onKeyUp(keyCode, event);}
思路2:开线程延时处理
private int mBackKeyPressedTimes = 0;@Overridepublic void onBackPressed() {if (mBackKeyPressedTimes == 0) {Toast.makeText(this, "再按一次退出程序 ", Toast.LENGTH_SHORT).show();mBackKeyPressedTimes = 1;new Thread() {@Overridepublic void run() {try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();} finally {mBackKeyPressedTimes = 0;}}}.start();return;else{this.activity.finish();}}super.onBackPressed();}
做事不怕难,自无难人事。