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方法即可。

  • 相关阅读:
    Linux入门(四)linux运行环境mysql详细操作及安装phpmyadmin
    Linux入门(五)linux服务器文件远程管理
    Linux入门(六)ubuntu下vim编辑器安装与使用
    windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境)
    Linux入门(三)搭建服务器linux运行环境LAMP/LNMP
    Linux入门(二)Linux基本命令及基本操作
    discuz使用总结
    ThinkPHP3.1快速入门(3)查询语言
    LeetCode 611. 有效三角形的个数(Valid Triangle Number)
    LeetCode 566. 重塑矩阵(Reshape the Matrix)
  • 原文地址:https://www.cnblogs.com/eustoma/p/2415780.html
Copyright © 2011-2022 走看看