zoukankan      html  css  js  c++  java
  • (十一) android项目中退出应用程序工具类,直接用这个工具类可以很好地在任何地方退出应用程序

    Android项目经常需要实现退出应用程序的功能,本文重点参考博客http://blog.csdn.net/xiaanming/article/details/9344703中的方法,完善了一下退出应用程序工具类。

    import java.util.LinkedList;
    import java.util.List;
    
    import android.app.Activity;
    
    /**
     * 类说明:android退出程序的工具类,使用单例模式
     * 1.在Activity的onCreate()的方法中调用addActivity()方法添加到mActivityList
     * 2.你可以在Activity的onDestroy()的方法中调用delActivity()来删除已经销毁的Activity实例
     * 这样避免了mActivityList容器中有多余的实例而影响程序退出速度
     * 
     * 如果你的项目中有很多个Activity,你需要在每一个Activity的onCreate()和onDestroy()调用addActivity()
     * 和delActivity()方法,这样子是不是显得很多余?你可以写一个BaseActivity继承Activity,然后再BaseActivity的onCreate
     * ()和onDestroy()调用addActivity()和delActivity()方法,其他的Activity继承BaseActivity就行了
     * 
     * 需要退出应用的地方通过ExitAppUtils.getInstance().eixtApp()调用就可以退出应用;
     * 
     * @author fuyanan
     * @date 2015-9-8
     * @version 1.0.0
     */
    public class ExitAppUtils {
    
        private List<Activity> mActivityList = new LinkedList<Activity>(); // 装载Activity的容器
        private static ExitAppUtils instance = new ExitAppUtils();
    
        private ExitAppUtils() {
        };
    
        /**
         * 获取ExitAppUtils的实例,保证只有一个ExitAppUtils实例存在
         * 
         * @return
         */
        public static ExitAppUtils getInstance() {
            return instance;
        }
    
        /**
         * 添加Activity实例到mActivityList中,在onCreate()中调用
         * 
         * @param activity
         */
        public void addActivity(Activity activity) {
            if (mActivityList == null) {
                mActivityList = new LinkedList<Activity>();
            }
            if (!mActivityList.contains(activity)) {
                mActivityList.add(activity);
            }
        }
    
        /**
         * 从容器中删除多余的Activity实例,在onDestroy中调用
         * 
         * @param activity
         */
        public void delActivity(Activity activity) {
            if (mActivityList != null) {
                mActivityList.remove(activity);
            }
        }
    
        /**
         * 退出应用
         */
        public void eixtApp() {
            if (mActivityList == null) {
                return;
            }
            for (Activity activity : mActivityList) {
                if (activity != null) {
                    activity.finish();
                }
            }
            System.exit(0);
        }
    }
  • 相关阅读:
    WPF-学习笔记 将控件添加到Grid中的指定行指定列
    WPF 学习笔记-在WPF下创建托盘图标
    WPF-学习笔记 动态修改控件Margin的值
    WPF-学习笔记 按下鼠标拖动窗口
    WPF 学习笔记-判断动画完成的画件
    WPF 学习笔记-跨线程引用控件
    WPF 学习笔记-设置属性使窗口不可改变大小
    C语言博客作业02循环结构
    C语言博客作业03函数
    C语言博客作业01分支、顺序结构
  • 原文地址:https://www.cnblogs.com/fuyanan/p/4791883.html
Copyright © 2011-2022 走看看