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;
}
}