package com.mm.android.deviceaddmodule.mobilecommon.base; import android.app.Activity; import java.util.Stack; /** *

* activity 栈管理 *

*/ public class ActivityManager { private static Stack activityStack; private static ActivityManager instance; private ActivityManager() { } public static ActivityManager getScreenManager() { if (instance == null) { instance = new ActivityManager(); } return instance; } // 退出栈顶Activity public void popActivity(Activity activity) { if (activity != null) { // 在从自定义集合中取出当前Activity时,也进行了Activity的关闭操作 //activity.finish(); activityStack.remove(activity); activity = null; } } // 获得当前栈顶Activity public Activity currentActivity() { Activity activity = null; try{ if (activityStack != null && !activityStack.empty()){ activity = activityStack.lastElement(); } }catch (Exception e){ return activity; } return activity; } // 将当前Activity推入栈中 public void pushActivity(Activity activity) { if (activityStack == null) { activityStack = new Stack<>(); } activityStack.add(activity); } // 退出栈中所有Activity public void popAllActivityExceptOne(Class cls) { while (true) { Activity activity = currentActivity(); if (activity == null) { break; } if (activity.getClass().equals(cls)) { break; } popActivity(activity); } } }