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);
            }
        }
    }
  • 相关阅读:
    聊天ListView
    Android笔试题三
    java内存分配与垃圾回收
    Activity切换的时候生命周期的变化
    二分查找
    如何用报表工具实现树状层级结构的填报表
    报表数据填报中的自动计算
    报表数据填报中的合法性校验
    tab 页形式展现多张报表
    报表工具之数据校验竟可以如此简单
  • 原文地址:https://www.cnblogs.com/gongcb/p/2528518.html
Copyright © 2011-2022 走看看