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下的输入/输出重定向
    strcpy与strncpy的区别
    C++的函数重载
    gtest 学习二
    gtest 学习一
    char* wchar* char wchar转换
    iconv 编译不通过问题
    嵌入式常用库
    驱动编程class_create说明
    libiconv 交叉编译
  • 原文地址:https://www.cnblogs.com/eustoma/p/2415780.html
Copyright © 2011-2022 走看看