• (十一) 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);
        }
    }
  • 相关阅读:
    存储过程示例
    对话:关于委托的进一步讨论(转)
    Oracle SQLServer 的随机数问题 .(转)
    AJAX控件之AutoComplete
    穷人与富人的区别
    喜欢(转)
    用sql求得每行行号
    ajax 注册
    如何快速生成100万不重复的8位编号 (转)
    存儲過程的基本語句
  • 原文地址:https://www.cnblogs.com/fuyanan/p/4791883.html
Copyright © 2020-2023  润新知