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);
            }
        }
    }
  • 相关阅读:
    <mySql完全手册>2011031401
    <海量数据库解决方案>2011030801
    检索
    <mySql完全手册>2011022401
    <自己动手写操作系统>2011031601
    数据结构和算法基础
    <海量数据库解决方案>2011031001
    <自己动手写操作系统>2011032101
    Delphi方法类型
    .NET下的Login机制
  • 原文地址:https://www.cnblogs.com/gongcb/p/2528518.html
Copyright © 2011-2022 走看看