/** * 點擊返回鍵退出程序 */ private static Boolean isExit = false; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (isExit == false) { isExit = true; ToastUtils.show("再按一次退出程序"); UiUtils.postDelayed(new Runnable() { @Override public void run() { isExit = false; } }, 2000); } else { //退出程序 BaseActivity.killAll(); } } return false; }
ToastUtils.show("再按一次退出程序");android
使用的以下封裝ide
public class ToastUtils { private static Toast toast; public static void show(String msg) { if (toast == null) { toast = Toast.makeText(UiUtils.getContext(), msg, Toast.LENGTH_LONG); } else { toast.setText(msg); } toast.show(); } }UiUtils.postDelayed以下post
public static void postDelayed(Runnable run, int time) { BaseApplication.getHandler().postDelayed(run, time); // 調用Runable裏面的run方法 }就是拿到一個主線程handler發送一個延遲方法,2s內有效。線程
public static void killAll() { // 複製了一份mActivities 集合 List<BaseActivity> copy; synchronized (mActivities) { copy = new LinkedList<BaseActivity>(mActivities); } for (BaseActivity activity : copy) { activity.finish(); } // 殺死當前的進程 android.os.Process.killProcess(android.os.Process.myPid()); }簡單的能夠直接使用finish()便可退出程序。進程