public class AppManager {// activity栈private static Stack<Activity> activityStack;
// activity 单例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() {Activity activity = activityStack.lastElement();return activity;}/*** 结束当前Activity(堆栈中最后一个压入的)*/public void finishActivity() {Activity activity = activityStack.lastElement();finishActivity(activity);}/*** 结束指定的Activity*/public void finishActivity(Activity activity) {if (activity != null && !activity.isFinishing()) {activityStack.remove(activity);activity.finish();activity = null;}}/*** 结束指定类名的Activity*/public void finishActivity(Class<?> cls) {for (Activity activity : activityStack) {if (activity.getClass().equals(cls)) {finishActivity(activity);break;}}}/*** 结束所有Activity*/public void finishAllActivity() {for (int i = 0, size = activityStack.size(); i < size; i++) {if (null != activityStack.get(i)) {finishActivity(activityStack.get(i));break;}}activityStack.clear();}/*** 获取指定的Activity** @author kymjs*/public static Activity getActivity(Class<?> cls) {if (activityStack != null)for (Activity activity : activityStack) {if (activity.getClass().equals(cls)) {return activity;}}return null;}public static Stack<Activity> getActivitys(){return activityStack;}/*** 退出应用程序*/public void AppExit(Context context) {try {finishAllActivity();// 杀死该应用进程android.os.Process.killProcess(android.os.Process.myPid());System.exit(0);} catch (Exception e) {}}/**返回当前Activity栈中Activity的数量* @return*/public int getActivityCount(){int count = activityStack.size();return count;}/*** 堆栈中移除Activity*/public void removeActivity(Activity activity) {if (activityStack == null) {return;}else if(activityStack.contains(activity)){activityStack.remove(activity);}if (activity != null && !activity.isFinishing()) {activity.finish();activity = null;}}
}
详细解决方案
Activity堆栈式管理器
热度:64 发布时间:2023-10-17 21:44:44.0
相关解决方案
- Activity 图片,该如何解决
- Android 三 开始 Activity MainThread中不能执行http通信了
- Activity 起步模式
- android错误Unable to instantiate activity ComponentInfo解决办法
- Android activity onNewIntent触发火候
- PopWindow 的浮动在目前(activity)的顶部是什么意思
- Activity 中的1对象想在 Fragment 中使用,请前辈指导
- 关于Android平台上头is not valid; is your activity running
- android activity 窗口化后 掩藏
- Android关于No Activity found to handle Intent的有关问题
- [Android]Android Activity 起步模式详解
- Activity,service,普通类之间的交互解决方法
- Activity 切换有关问题(或者说按Home键finish Activity)
- 关于android程序运行出现unable to instantiate activity componentinfo的有关问题
- Android Activity 悬浮 半透明框子
- 传递数据 activity,该如何处理
- 三个页面(Activity)之间的切换解决方案
- 运行错误:android.view.WindowManager$BadTokenException:is not valid; is your activity running
- 模拟器揭示Unfortunately,Activity has stopped
- Activity onStop自动执行!
- Android 不能返回 parent Activity 的有关问题
- Activity 起步一个死循环线程无响应
- android activity 互相传值
- android基础七——Activity
- 关于Idea android studio 提示Error:Default Activity not found无法编译有关问题
- 一个 Activity 加了 Logger 以后,Logger 总是为空,咋回事呢
- Activity close事前的会调用什么方法啊
- A activity怎么根据不同跳到B或者C activity
- Android Activity 左右Bar固定高度, 中间内容区自适应大小的layout设置
- Android错误总结-ActivityManager: Warning: Activity not started,its current task has been brought to th