一般App都会有个SplashActivty作为启动页, 然后开启MainActivity.然后在onKeyDown里做"再按一次退出程序"的逻辑.
网上也说了很多种退出app的方法, 比如拿单例管理Activity栈, 空指针, System.exit(0)等等.但是都没有接下来的方法好.
其实只需要你在推出MainActivity后, 把SplashActivity给finish掉就可以了.具体操作如下:
splash的onStop方法里finish
@Override protected void onStop() { super.onStop(); finish(); }处理退出app的地方也finish就可以了.
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == event.KEYCODE_BACK && event.getRepeatCount() == 0) { exit(); return false; } return super.onKeyDown(keyCode, event); } private void exit() { if ((System.currentTimeMillis() - mExitTime) > 2000) { Toast.makeText(MainActivity.this, getString(R.string.string_exit), Toast.LENGTH_SHORT).show(); mExitTime = System.currentTimeMillis(); } else { finish(); } }