zoukankan      html  css  js  c++  java
  • 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);
            }
        }
    }
  • 相关阅读:
    迭代器接口
    实现Promise
    学学springboot吧!!!!
    了解一下连接池!!!!
    Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules ???报错!!!
    requset和response的区别????
    百度也太神奇了吧
    这个svn啊,真的是有点看不懂
    BootStrap???确实厉害
    突然看到原来除了jar包还有war包啊?????
  • 原文地址:https://www.cnblogs.com/gongcb/p/2528518.html
Copyright © 2011-2022 走看看