package com.ectrip.cyt.utils; import java.util.Iterator; import java.util.Stack; import android.app.Activity; /** * activity堆栈管理 * * */ public class ActivitiesManager { private static final String TAG = "ActivitiesManager"; private static Stack mActivityStack; private static ActivitiesManager mActivitiesManager; private ActivitiesManager() { } public static ActivitiesManager getInstance() { if (null == mActivitiesManager) { mActivitiesManager = new ActivitiesManager(); if (null == mActivityStack) { mActivityStack = new Stack(); } } return mActivitiesManager; } public int stackSize() { return mActivityStack.size(); } public Activity getCurrentActivity() { Activity activity = null; try { activity = mActivityStack.lastElement(); } catch (Exception e) { return null; } return activity; } public void popActivity() { Activity activity = mActivityStack.lastElement(); if (null != activity) { LogUtil.i(TAG, "popActivity-->" + activity.getClass().getSimpleName()); activity.finish(); mActivityStack.remove(activity); activity = null; } } public void popActivity(Activity activity) { if (null != activity) { LogUtil.i(TAG, "popActivity-->" + activity.getClass().getSimpleName()); // activity.finish(); mActivityStack.remove(activity); activity = null; } } public void pushActivity(Activity activity) { mActivityStack.add(activity); LogUtil.i(TAG, "pushActivity-->" + activity.getClass().getSimpleName()); } public void popAllActivities() { while (!mActivityStack.isEmpty()) { Activity activity = getCurrentActivity(); if (null == activity) { break; } activity.finish(); popActivity(activity); } } public void popSpecialActivity(Class cls) { try { Iterator iterator = mActivityStack.iterator(); Activity activity = null; while (iterator.hasNext()) { activity = iterator.next(); if (activity.getClass().equals(cls)) { activity.finish(); iterator.remove(); activity = null; } } } catch (Exception e) { } } public void peekActivity() { for (Activity activity : mActivityStack) { if (null == activity) { break; } LogUtil.i(TAG, "peekActivity()-->" + activity.getClass().getSimpleName()); } } }