zoukankan      html  css  js  c++  java
  • Android退出程序(一)——单例模式

    首先说明的一点就是,真正意义上的完全退出程序在应用层上其实还是做不到的。我们在应用层上所做的退出程序,都只是关闭了当前的前台程序,而后台程序其实还是在运行着的。

    这里我们的思路就是把所有的Activity收集起来,然后再统一进行关闭。那么怎么来收集Activity呢?我们都知道Activity是一个对象,那么是用数组吗?如果用数组,我们就得给一个定长的数组来进行限制,数组的大小大了不好,小了更是是要命的事。那用什么?我们对对象的收集处理一般是用List<...>或是其衍生。。。

    这里我们用List<Activity>来保存Activity:

    private List<Activity> activityList = new LinkedList<Activity>();
    再定义一个对外的方法接口,用于接收Activity:

    public void addActivity(Activity activity) {
            activityList.add(activity);
        }
    最后统一finish();

    public void exit() {
            for (Activity activity : activityList) {
                activity.finish();
            }
            System.exit(0);
        }
    当我们创建了一个Activity的同时,我们就把这个Activity添加到我们List<Activity>中来,如下:

    EyeApplicationManager.getInstance().addActivity(this);

    ---------------------------------------- 管理Activity退出类的代码如下 ---------------------------------------

    package com.android.password.application;
    
    import java.util.LinkedList;
    import java.util.List;
    
    import android.app.Activity;
    
    /**
     * 这个类是用单例模式实现的一个
     * 用来退出程序的类
     * @author William-H
     * 开发日期:2014年8月22日
     */
    public class EyeApplicationManager {
    
        private List<Activity> activityList = new LinkedList<Activity>();
        private static EyeApplicationManager instance;
    
        private EyeApplicationManager() {
        }
    
        /**
         * 单例模式中获取唯一的MyApplication实例
         * @return
         */
        public static EyeApplicationManager getInstance() {
            if (null == instance) {
                instance = new EyeApplicationManager();
            }
            return instance;
        }
    
        /**
         * 添加Activity到容器中
         * @param activity
         */
        public void addActivity(Activity activity) {
            activityList.add(activity);
        }
    
        /**
         * 遍历所有Activity并finish
         */
        public void exit() {
            for (Activity activity : activityList) {
                activity.finish();
            }
            System.exit(0);
        }
    }
    
    如果你足够细致,我想你应该会发现,其实,这个类能做的可不是只有退出程序这么简单。。。

    关于退出程序,我之前也有写过一篇是关于双击返回键退出程序,点击连接进行博客。。。

    那在Demo中究竟是怎么样来使用呢?点击查看源码


  • 相关阅读:
    安卓学习第三课——常见布局
    安卓学习第二课——短信发送器
    POJ3735【矩阵快速幂】
    Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)【A,B,C,D】
    POJ3737【数学】
    HDU2489【状压枚举】
    POJ3734【状压枚举】
    HDU1598【最小生成树拓展】
    HDU1597【二分瞎搞】
    HDU3279【水】
  • 原文地址:https://www.cnblogs.com/fengju/p/6336152.html
Copyright © 2011-2022 走看看