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中究竟是怎么样来使用呢?点击查看源码


  • 相关阅读:
    java基础知识要点总结之几个重要关键字(关于static、this、final、)
    网上大篇幅的坑人的struts2入门案例
    oc4j(oracle container for j2EE)使用笔记一
    清空数据库中某个表的两种操作
    MyEclipse下将应用部署到tomcat严重: Error initializing endpoint java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind
    jsp----错误页设置
    jsp设置MIME类型
    jsp输出显示表格
    jsp输出方式
    Linux操作
  • 原文地址:https://www.cnblogs.com/fengju/p/6336152.html
Copyright © 2011-2022 走看看