/** 堆栈管理对象 */ private static final ActivityStack STACK = new ActivityStack();
/** * 最后一次尝试退出的时间戳 */ private static long lastExitPressedMills = 0;
/** 额外操作 */ private static ExtraOperations operations;
/** * 当APP退出的时候,结束所有Activity */ public static void finishAll() { Logger.i(TAG, ">>>>>>>>>>>>>>>>>>> Exit <<<<<<<<<<<<<<<<<<<"); while (!STACK.isEmpty()) { final Activity activity = STACK.popFromStack(); if (activity != null) { Logger.i(TAG, activity.toString()); activity.finish(); if (null != operations) { operations.onActivityFinish(activity); } } } Logger.i(TAG, ">>>>>>>>>>>>>>>>>>> Complete <<<<<<<<<<<<<<<<<<<"); }
/** * 退出APP */ public static void onExit() { final long now = System.currentTimeMillis(); if (now <= lastExitPressedMills + MAX_DOUBLE_EXIT_MILLS) { BqsDF.destroy(); finishAll(); if (null != operations) { operations.onExit(); } System.exit(0); } else { if (null != peek()) { ToastUtil.toast(R.string.app_exit); } lastExitPressedMills = now; } }