Android基础知识

Activty管理的功能类

2018-07-19  本文已影响1人  ZebraWei
public class ActivityManager {
public Stack<Activity> activityStack;
private static  ActivityManager mActivityManager;

public static ActivityManager getInstance() {
    if (mActivityManager == null) {
        synchronized (ActivityManager.class) {
            if (mActivityManager == null) {
                mActivityManager = new ActivityManager();
            }
        }
    }
    return mActivityManager;
}

/**
 * 获取当前Activity(栈中最后一个压入的)
 */
public Activity getCurrentActivity() {
    Activity activity = activityStack.lastElement();
    return activity;
}

/**
 * 添加Activity到栈
 */
public void addActivity(Activity activity) {
    if(activityStack == null) {
        activityStack = new Stack<Activity>();
    }
    activityStack.add(activity);
}

/**
 * 结束当前Activity(栈中最后一个压入的)
 */
public void finishActivity() {
    Activity activity = activityStack.lastElement();
    activity.finish();
}

/**
 * 移除指定的Activity
 */
public void removeActivity(Activity activity) {
    if(activity != null) {
        activityStack.remove(activity);
    }
}

/**
 * 结束指定类名的Activity
 */
public void finishActivity(Class<?> cls) {
    for(Activity activity: activityStack) {
        if(activity.getClass().equals(cls)) {
            activity.finish();
        }
    }
}

/**
 * 结束所有Activity
 */
public void finishAll() {
    for(int i = 0; i < activityStack.size(); i++) {
        if(activityStack.get(i) != null) {
            activityStack.get(i).finish();
        }
    }
    activityStack.clear();
}
}

Activity 控制类

public class ActivityCollector {
private static final String TAG = ActivityCollector.class.getSimpleName();
private static ActivityCollector mCollector;
private List<Activity> activitys = new ArrayList<Activity>();

public static ActivityCollector getInstance() {
    if (mCollector == null) {
        synchronized (ActivityCollector.class) {
            if (mCollector == null) {
                mCollector = new ActivityCollector();
            }
        }
    }
    return mCollector;
}

public void addActivity(Activity activity) {
    if(activity != null) {
        activitys.add(activity);
    }
}

public void removeActivity(Activity activity) {
    if(activity != null) {
        activitys.remove(activity);
    }
}

public void finishAll(String name) {
    for(Activity activity : activitys) {
        if(!activity.isFinishing()) {
            Log.d("ActivityCollector","finish class:"+activity.getClass().toString());
            if(!activity.getClass().getName().equals("MainActivity")) {
                activity.finish();
                Log.d(TAG,"finish =" + activity.getClass().getName());
            }
        }
    }
}

public void finishWithout(String name) {
    for(Activity activity : activitys){
        if(!activity.isFinishing() && !activity.getClass().toString().equalsIgnoreCase(name)) {
            Log.d(TAG,"finish class: " +activity.getClass().toString());
            activity.finish();
        }
    }
    
}

public void finishActivity(String name) {
    for(Activity activity : activitys) {
        if(!activity.isFinishing()) {
            if(name.compareTo(activity.getClass().toString()) == 0) {
                activity.finish();
                return;
            }
        }
    }
}

public boolean isFinishActivity(String name) {
    for(Activity activity : activitys){
        if(!activity.isFinishing()) {
            if(name.compareTo(activity.getClass().toString()) == 0) {
                return false;
            }
        }
    }
    
    return false;
}
}
上一篇 下一篇

猜你喜欢

热点阅读