不多说,直接放码:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if ((event.getKeyCode() == KeyEvent.KEYCODE_BACK) && (event.getAction() == KeyEvent.ACTION_UP)) {
android.support.v4.app.FragmentManager fm = getSupportFragmentManager();
int count = 0;
List<Fragment> fragList = fm.getFragments();
for (int i = 0; i < fragList.size(); i++) {
if (fragList.get(i) != null) {
count++;
}
}
if (count == 2) {
if (sm.isOpen()) {
sm.closePane();
return true;
}
if (removeFragImmediately) {
removeFragImmediately = false;
return true;
}
if (isSecondBack) {
showMessage(R.string.exit_app_tip);
handler.postDelayed(new Runnable() {
@Override
public void run() {
isSecondBack = true;
}
}, 3000);
isSecondBack = false;
} else {
this.finish();
System.exit(0);
}
return true;
}
}
return super.dispatchKeyEvent(event);
}
很简单,如果3秒内按下了两次就直接退出应用!