/** * 点击返回键退出程序 */ 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()便可退出程序。进程