You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
2.7 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.rehome.zhdcoa;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
import java.util.Stack;
public class AppManager {
private static Stack<Activity> activityStack;
private static AppManager instance;
private AppManager() {
}
/**
* 单一实例
*/
public static AppManager getAppManager() {
if (instance == null) {
instance = new AppManager();
}
return instance;
}
/**
* 添加Activity到堆栈
*/
public void addActivity(Activity activity) {
if (activityStack == null) {
activityStack = new Stack<Activity>();
}
activityStack.add(activity);
}
/**
* 获取当前Activity堆栈中最后一个压入的
*/
public Activity currentActivity() {
if (activityStack != null) {
Activity activity = activityStack.lastElement();
return activity;
}
return null;
}
/**
* 结束当前Activity堆栈中最后一个压入的
*/
public void finishActivity() {
if (activityStack != null) {
Activity activity = activityStack.lastElement();
finishActivity(activity);
}
}
/**
* 结束指定的Activity
*/
public void finishActivity(Activity activity) {
if (activityStack != null) {
if (activity != null) {
activityStack.remove(activity);
activity.finish();
activity = null;
}
}
}
/**
* 结束指定类名的Activity
*/
public void finishActivity(Class<?> cls) {
if (activityStack != null) {
for (Activity activity : activityStack) {
if (activity.getClass().equals(cls)) {
finishActivity(activity);
}
}
}
}
/**
* 结束所有Activity
*/
public void finishAllActivity() {
if (activityStack != null) {
for (int i = 0, size = activityStack.size(); i < size; i++) {
if (null != activityStack.get(i)) {
activityStack.get(i).finish();
}
}
activityStack.clear();
}
}
/**
* 退出应用程序
*/
@SuppressWarnings("deprecation")
public void AppExit(Context context) {
try {
finishAllActivity();
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
activityManager.restartPackage(context.getPackageName());
System.exit(0);
} catch (Exception e) {
e.printStackTrace();
}
}
}