package cn.mutils.app.os; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import android.app.Activity; public class AppActivityManager { protected static List<Activity> sActivitys; public static boolean exists(Class<? extends Activity> activityCls) { if (sActivitys == null) { return false; } for (Activity activity : sActivitys) { if (activityCls.isInstance(activity)) { return true; } } return false; } public static void redirectTo(Class<? extends Activity> activityCls) { if (sActivitys == null) { return; } boolean finishBehind = false; for (int i = 0; i < sActivitys.size(); i++) { Activity activity = sActivitys.get(i); if (finishBehind) { activity.finish(); i--; } else { if (activityCls.isInstance(activity)) { finishBehind = true; } } } } public static void finishAll() { if (sActivitys == null) { return; } for (Activity activity : sActivitys) { activity.finish(); } sActivitys.clear(); } public static void attach(Activity activity) { if (sActivitys == null) { sActivitys = new CopyOnWriteArrayList<Activity>(); } else { if (sActivitys.contains(activity)) { return; } } sActivitys.add(activity); } public static void detach(Activity activity) { if (sActivitys == null) { return; } sActivitys.remove(activity); } }