package cm.android.util; import android.app.Activity; import java.util.LinkedList; import cm.java.util.ObjectUtil; /** * Activity栈 */ @Deprecated public final class ActivityStack { private static final LinkedList<Activity> ACTIVITY_LIST = ObjectUtil.newLinkedList(); private ActivityStack() { } /** * 单例模式中获取唯一的实例 */ public static ActivityStack getInstance() { return ActivityStackHolder.INSTANCE; } /** * 添加Activity到栈中中 */ public synchronized void addActivity(Activity activity) { ACTIVITY_LIST.addFirst(activity); } /** * 从栈中移除Activity */ public synchronized void removeActivity(Activity activity) { ACTIVITY_LIST.remove(activity); } /** * 移除栈顶的Activity */ public synchronized void removeTopActivity() { if (ACTIVITY_LIST.size() > 0) { Activity currentActivity = ACTIVITY_LIST.removeFirst(); currentActivity.finish(); } } /** * 遍历所有Activity并finish */ public synchronized void finishAll() { for (Activity activity : ACTIVITY_LIST) { activity.finish(); } ACTIVITY_LIST.clear(); } private static final class ActivityStackHolder { private static final ActivityStack INSTANCE = new ActivityStack(); } }