package com.mm.android.deviceaddmodule.mobilecommon.base;
import android.app.Activity;
import java.util.Stack;
/**
*
* activity 栈管理
*
*/
public class ActivityManager {
private static Stack activityStack;
private static ActivityManager instance;
private ActivityManager() {
}
public static ActivityManager getScreenManager() {
if (instance == null) {
instance = new ActivityManager();
}
return instance;
}
// 退出栈顶Activity
public void popActivity(Activity activity) {
if (activity != null) {
// 在从自定义集合中取出当前Activity时,也进行了Activity的关闭操作
//activity.finish();
activityStack.remove(activity);
activity = null;
}
}
// 获得当前栈顶Activity
public Activity currentActivity() {
Activity activity = null;
try{
if (activityStack != null && !activityStack.empty()){
activity = activityStack.lastElement();
}
}catch (Exception e){
return activity;
}
return activity;
}
// 将当前Activity推入栈中
public void pushActivity(Activity activity) {
if (activityStack == null) {
activityStack = new Stack<>();
}
activityStack.add(activity);
}
// 退出栈中所有Activity
public void popAllActivityExceptOne(Class cls) {
while (true) {
Activity activity = currentActivity();
if (activity == null) {
break;
}
if (activity.getClass().equals(cls)) {
break;
}
popActivity(activity);
}
}
}