zoukankan      html  css  js  c++  java
  • Android学习使用单例模式实现一键退出APP

    http://www.ilingxi.com/blog/duanhongchang/?p=72

    我们都知道Activity的finish方法只能退出当前的Activity,但如果我们希望一键退出所有已经create的Activity又该如何做呢?很简单,我们通过单例模式设计了一个管理当前活动的Activity的类,名叫MyActivityManager,代码如下:


    import java.util.LinkedList;
    import java.util.List;

    import android.app.Activity;
    import android.app.Application;

    /**
     * Activity管理类
     * 1、activity():保存Activity
     * 2、exit():关闭所有保存的Activity
     * @author 段宏昌
     *
     */
    public class MyActivityManager extends Application {

        /**
         * Activity列表
         */
        private List<Activity> activityList = new LinkedList<Activity>();
        
        /**
         * 全局唯一实例
         */
        private static MyActivityManager instance;
        

        /**
         * 该类采用单例模式,不能实例化
         */
        private MyActivityManager()
        {
        }

        /**
         * 获取类实例对象
         * @return    MyActivityManager
         */
        public static MyActivityManager getInstance() {
            if (null == instance) {
                instance = new MyActivityManager();            
            }
            return instance;
        }


        /**
         * 保存Activity到现有列表中
         * @param activity
         */
        public void addActivity(Activity activity) {
            activityList.add(activity);
        }


        /**
         * 关闭保存的Activity
         */
        public void exit() {
            if(activityList!=null)
            {
                Activity activity;
                
                for (int i=0; i<activityList.size(); i++) {            
                    activity = activityList.get(i);
                    
                    if(activity!=null)
                    {
                        if(!activity.isFinishing())
                        {
                            activity.finish();
                        }
                        
                        activity = null;
                    }
                    
                    activityList.remove(i);                
                    i–;
                }
            }
        }
    }


    在每个Activity的onCreate方法中调用MyActivityManager的addActivity方法,然后在需要使用一键退出的地方调用MyActivityManager中的exit方法即可。

  • 相关阅读:
    在不同浏览器都实用的各窗口大小获取方法
    line-height,vertical-align及图片居中对齐问题根源解析
    浅谈语义化
    有关于界面设计的技巧
    图片无缝滚动
    office 所有后缀对应的 content-type
    原生js删除增加修改class属性
    使用 colgroup 和 col 实现响应式表格
    js 监控浏览器关闭事件
    document.documentElement.scrollTop(获取滚动条位置)
  • 原文地址:https://www.cnblogs.com/eustoma/p/2415780.html
Copyright © 2011-2022 走看看