安卓中,通过重载 onKeyDown 可以实现“再按一次退出”功能,但是这种应该仅在根页面(Activity)实现,其他页不应该有这个效果,要实现这个,关键在于:isTaskRoot()。
代码如下:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode != KeyEvent.KEYCODE_BACK) { return super.onKeyDown(keyCode, event); } if (!isTaskRoot()) { return super.onKeyDown(keyCode, event); } if (System.currentTimeMillis() - exitTipTime <= 2000) { return super.onKeyDown(keyCode, event); } else { exitTipTime = System.currentTimeMillis(); Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show(); return true; // 返回 true,表示已经处理了 onKeyDown。 } }