package com.yzy.supercleanmaster.base; import android.app.Activity; import android.content.Context; import com.umeng.analytics.MobclickAgent; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * activity 栈管理 * @author duohuo-jinghao * */ public class ActivityTack { public List<Activity> activityList=new ArrayList<Activity>(); public static ActivityTack tack=new ActivityTack(); public static ActivityTack getInstanse(){ return tack; } private ActivityTack(){ } public void addActivity(Activity activity){ activityList.add(activity); } public void removeActivity(Activity activity){ activityList.remove(activity); } /** * 完全退出 * @param context */ public void exit(Context context){ MobclickAgent.onKillProcess(context); while (activityList.size()>0) { activityList.get(activityList.size()-1).finish(); } System.exit(0); } /** * 根据class name获取activity * @param name * @return */ public Activity getActivityByClassName(String name){ for(Activity ac:activityList){ if(ac.getClass().getName().indexOf(name)>=0) { return ac; } } return null; } @SuppressWarnings("rawtypes") public Activity getActivityByClass(Class cs){ for(Activity ac:activityList){ if(ac.getClass().equals(cs)) { return ac; } } return null; } /** * 弹出activity * @param activity */ public void popActivity(Activity activity){ removeActivity(activity); activity.finish(); } /** * 弹出activity到 * @param cs */ @SuppressWarnings("rawtypes") public void popUntilActivity(Class... cs){ List<Activity> list=new ArrayList<Activity>(); for (int i = activityList.size()-1; i>=0; i--){ Activity ac= activityList.get(i); boolean isTop=false; for (int j = 0; j < cs.length; j++) { if(ac.getClass().equals(cs[j])){ isTop=true; break; } } if(!isTop){ list.add(ac); }else break; } for (Iterator<Activity> iterator = list.iterator(); iterator.hasNext();) { Activity activity = iterator.next(); popActivity(activity); } } }