private Handler mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
isExit=false;
}
};
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK){
exit();
return false;
}
return super.onKeyDown(keyCode, event);
}
/**
* 双击退出函数
*/
private static Boolean isExit=false;
private void exit() {
/***
* 当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法。
在exit方法中,会首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在2000毫秒(2秒)后发出一个消息,在Handler中将此值还原成false。如果在发送消息间隔的2秒内,再次按了BACK键,则再次执行exit方法,此时isExit的值已为true,则会执行退出的方法。
*/
if(!isExit){
isExit=true;
Toast.makeText(getApplicationContext(), "再按退出程序", Toast.LENGTH_SHORT).show();
mHandler.sendEmptyMessageDelayed(0,2000);
}else{
finish();
System.exit(0);
}