package com.moral.andbrickslib.utils; import android.app.Activity; import android.content.Context; import android.text.TextUtils; import java.util.Iterator; import java.util.Stack; /** * Activity管理类 * Created by hjzhang on 2016/3/15. */ public class ActivityManager { private static Stack activityStack; private static ActivityManager instance; private ActivityManager() { } public static ActivityManager getActivityManager() { if(instance == null) { instance = new ActivityManager(); } return instance; } /** * Activity进栈 */ public void addActivity(Activity activity) { if(activityStack == null) { activityStack = new Stack(); } activityStack.add(activity); } /** * 返回当前Activity */ public Activity currentActivity() { if(activityStack == null) { return null; } else { Activity activity = (Activity)activityStack.lastElement(); return activity; } } /** * 退出当前Activity */ public void finishActivity() { if(activityStack != null) { Activity activity = (Activity)activityStack.lastElement(); this.finishActivity(activity); } } /** * 根据activity实例退出 * @param activity */ public void finishActivity(Activity activity) { if(activityStack != null) { if(activity != null) { activityStack.remove(activity); activity.finish(); activity = null; } } } /** * 根据Activity名称退出 * @param cls */ public void finishActivity(Class cls) { if(activityStack != null) { Iterator iterator = activityStack.iterator(); while(iterator.hasNext()) { Activity activity = (Activity)iterator.next(); if(activity != null && activity.getClass().equals(cls)) { activity.finish(); iterator.remove(); } } } } public void finishAllActivity() { if(activityStack != null) { Iterator iterator = activityStack.iterator(); while(iterator.hasNext()) { Activity activity = (Activity)iterator.next(); if(activity != null && !activity.isFinishing()) { activity.finish(); } } activityStack.clear(); } } public Activity getActivity(String activityName) { Iterator iterator = activityStack.iterator(); Activity activity; do { if(!iterator.hasNext()) { return null; } activity = (Activity)iterator.next(); } while(activity == null || !TextUtils.equals(activity.getClass().getName(), activityName)); return activity; } /** * 退出app * @param context */ public void appExit(Context context) { try { this.finishAllActivity(); } catch (Exception var3) { } } }