• Android进阶篇Activity管理


    系统对Activity是一种栈的管理,当我们调用finish方法的时候,系统的Activity栈就会自动pop掉该Activity。

    每次我们onCreate一个新的Activity的时候,相应的,也会自动push进去。

    有的时候,系统的Activity栈不能满足我们的操作,我们就需要自己写一个Activity管理类。

    public class ActivityManager {
    
        private static Stack<Activity> activityStack;
        private static ActivityManager instance;
    
        private ActivityManager() {
    
        }
    
        public static ActivityManager getInstance() {
            if (instance == null) {
                instance = new ActivityManager();
            }
            return instance;
        }
        
    
        /**-
         * 退出栈顶Activity
         * @param activity [Activity类]
         * 2011-12-19
         */
        public void popActivity(Activity activity) {
            activity.finish();
            activityStack.remove(activity);
            activity = null;
        }
        
    
        /**
         * 获得当前栈顶Activity
         * @return Activity
         * 2011-12-19
         */
        public Activity currentActivity() {
            Activity activity = null;
            if (activityStack != null) {
                if (!activityStack.empty())
                    activity = activityStack.lastElement();
            }
            return activity;
        }
    
        /**
         * 将当前Activity推入栈中
         * @param activity [Activity类]
         * 2011-12-19
         */
        public void pushActivity(Activity activity) {
            if (activityStack == null) {
                activityStack = new Stack<Activity>();
            }
            activityStack.add(activity);
        }
    
        
        /**
         * 退出栈中所有Activity
         * @param cls [class类]
         * 2011-12-19
         */
        public void popAllActivityExceptOne(Class cls) {
            while (true) {
                Activity activity = currentActivity();
                if (activity == null) {
                    break;
                }
                if (activity.getClass().equals(cls)) {
                    break;
                }
                popActivity(activity);
            }
        }
    }
  • 相关阅读:
    异常处理、网络编程
    内置函数、反射、__str__、__del__、元类
    tomcat 拒绝服务
    html标签
    google 与服务器搭建
    liunx centox ssh 配置
    java 泛型
    Windows Mysql安装
    java 空对象
    java 动态代理(类型信息)
  • 原文地址:https://www.cnblogs.com/gongcb/p/2528518.html
Copyright © 2020-2023  润新知