123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- package me.yoqi.android.safekeyboard.utils;
- import android.app.Activity;
- import java.util.Stack;
- /**
- * @author liuyuqi.gov@msn.cn
- * @date 3/17/2021
- */
- public class AppManager {
- private static Stack<Activity> activityStack;
- private static class SingleHolder {
- private static AppManager instance = new AppManager();
- }
- public static AppManager getInstance() {
- return SingleHolder.instance;
- }
- /**
- * 添加Activity到堆栈
- */
- public void addActivity(Activity activity) {
- if (activityStack == null) {
- activityStack = new Stack<Activity>();
- }
- activityStack.add(activity);
- }
- /**
- * 是否有activity
- */
- public boolean isActivity() {
- if (activityStack != null) {
- return !activityStack.isEmpty();
- }
- return false;
- }
- /**
- * 获取当前Activity(堆栈中最后一个压入的)
- */
- public Activity currentActivity() {
- Activity activity = activityStack.lastElement();
- return activity;
- }
- /**
- * 结束当前Activity(堆栈中最后一个压入的)
- */
- public void finishActivity() {
- Activity activity = activityStack.lastElement();
- if (!activity.isFinishing()) {
- activity.finish();
- }
- }
- public void finishActivity(Activity activity) {
- activityStack.remove(activity);
- }
- /**
- * 结束指定类名的Activity
- */
- public void finishActivity(Class<?> cls) {
- for (Activity activity : activityStack) {
- if (activity.getClass().equals(cls)) {
- if (!activity.isFinishing()) {
- activity.finish();
- }
- break;
- }
- }
- }
- /**
- * 返回指定 Activity,当然这个Activity需要存在
- *
- * @param cls
- */
- public void backActivity(Class<?> cls) {
- while (!activityStack.empty()) {
- Activity activity = activityStack.pop(); // 指定activity置顶
- if (activity.getClass().equals(cls)) {
- activityStack.push(activity);
- break;
- } else {
- activity.finish();
- }
- }
- }
- /**
- * 结束所有Activity
- */
- public void finishAllActivity() {
- if (activityStack != null && activityStack.size() > 0) {
- for (int i = 0, size = activityStack.size(); i < size; i++) {
- Activity activity = activityStack.get(i);
- if (null != activityStack.get(i)) {
- if (!activity.isFinishing()) {
- activity.finish();
- }
- }
- }
- activityStack.clear();
- }
- }
- /**
- * 获取指定的Activity
- */
- public Activity getActivity(Class<?> cls) {
- if (activityStack != null) {
- for (Activity activity : activityStack) {
- if (activity.getClass().equals(cls)) {
- return activity;
- }
- }
- }
- return null;
- }
- public void appExit(int code) {
- try {
- finishAllActivity();
- android.os.Process.killProcess(android.os.Process.myPid());
- System.exit(code);
- } catch (Exception e) {
- activityStack.clear();
- e.printStackTrace();
- }
- }
- }
|