zoukankan      html  css  js  c++  java
  • AppManager

    1.统一应用程序中所有的Activity的栈管理
      涉及到activity的添加、删除指定、删除当前、删除所有、返回栈大小的方法

    public class AppManager {
    
        private Stack<Activity> activityStack = new Stack<>();
    
        //设置当前类是单例的
        private static AppManager appManager = new AppManager();
        private AppManager(){}
        public static AppManager getInstance(){
            return appManager;
        }
    
        public void addActivity(Activity activity){
            activityStack.add(activity);
        }
    
        public void removeActivity(Activity activity){
            for(int i = activityStack.size() - 1; i >= 0 ; i--) {
                if(activityStack.get(i).getClass().equals(activity.getClass())){
                    activity.finish();
                    activityStack.remove(i);
                    break;
                }
            }
        }
    
        public void removeCurrent(){
    //        Activity activity = activityStack.get(activityStack.size() - 1);
            Activity activity = activityStack.lastElement();
            activity.finish();
            activityStack.remove(activity);
        }
    
        public void removeAll(){
            for(int i = activityStack.size() - 1; i >= 0 ; i--) {
                activityStack.get(i).finish();
                activityStack.remove(i);
            }
        }
    
        public int size(){
            return activityStack.size();
        }
    }
    

    2.在MainActivity中,将当前的Activity添加到栈管理中:

    protected void onCreate(Bundle savedInstanceState) {
        //将当前的Activity添加到栈管理中
        AppManager.getInstance().addActivity(this);
    }
    

      

      

  • 相关阅读:
    DM7 安装
    LeetCode 第 183 场周赛
    MySQL 源码中的 ut_a 、 ut_ad
    存储领域的会议和研究机构
    LeetCode 第 15 场双周赛
    LeetCode 第 167 场周赛
    值得推荐的C/C++框架和库
    InnoDB 中的锁实现
    LeetCode-第 166 场周赛
    LeetCode 第 165 场周赛
  • 原文地址:https://www.cnblogs.com/ganchuanpu/p/6481687.html
Copyright © 2011-2022 走看看