您的位置:首页 > 其它

Activity管理类

2017-07-19 16:37 183 查看
public class AppManager {
private static AppManager instance;
private Stack<Activity> activityStack;

/**
* 私有的构造函数
*/
private AppManager() {
if (null == activityStack) {
activityStack = new Stack<>();
}
}

public static AppManager getInstance() {
if (null == instance) {
instance = new AppManager();
}
return instance;
}

/**
* 添加Activity到堆栈
*/
public void addActivity(Activity activity) {
activityStack.add(activity);
}

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

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

/**
* 结束指定的Activity
*/
public void finishActivity(Activity activity) {
if (null != activity) {
activityStack.remove(activity);
activity.finish();
activity = null;
}
}

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

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

/**
* 退出应用程序
*/
public void AppExit(Context context) {
try {
finishAllActivity();
ActivityManager activityMgr = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
activityMgr.killBackgroundProcesses(context.getPackageName());
System.exit(0);
} catch (Exception e) {
}
}

/**
* 是否退出了
*
* @return
*/
public boolean isAppExit() {
return null == activityStack || activityStack.isEmpty();
}

/**
* 某个Activity是否存在
*
* @param cls
* @return
*/
public boolean isExistActivity(Class<?> cls) {
for (Activity activity : activityStack) {
if (activity.getLocalClassName().contains(cls.getSimpleName())) {
return true;
}
}

return false;
}

/**
* 除了cls,结束所有的Activity
* @param cls
*/
public void finishAllActivityExcept(Class<?> cls) {
for (Activity activity : activityStack) {
if (!activity.getClass().equals(cls)) {
finishActivity(activity);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Activity Activity管理