不多说,直接放码:

@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秒内按下了两次就直接退出应用!



本文转载:CSDN博客