Activity管理

来源:互联网 发布:中国影响力 知乎 编辑:程序博客网 时间:2024/06/05 19:45


import java.util.Stack;


import android.app.Activity;


public class ScreenManager {


private static Stack<Activity> activityStack;
private static ScreenManager instance;
private boolean flag = true;

private ScreenManager() {
}


public static ScreenManager getScreenManager() {
if (instance == null) {
instance = new ScreenManager();
}
return instance;
}


// 退出栈顶Activity
public void popActivity(Activity activity) {
if (activity != null) {
activity.finish();
activityStack.remove(activity);
if(activityStack.size() == 0){
flag = false;
}
activity = null;
}
}


// 获得当前栈顶Activity
public Activity currentActivity() {
Activity activity = activityStack.lastElement();
return activity;
}


// 将当前Activity推入栈中
public void pushActivity(Activity activity) {
if (activityStack == null) {
activityStack = new Stack<Activity>();
}
activityStack.add(activity);
}


// 退出栈中所有Activity
public void popAllActivityExceptOne(Class cls) {
flag = true;
while (flag) {
Activity activity = currentActivity();
if (activity == null) {
break;
}
if (activity.getClass().equals(cls)) {
break;
}
popActivity(activity);
}
}
}
0 0
原创粉丝点击