(十一) 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);
    }
}

 

posted @ 2015-09-08 15:30  小菜美妞成长中  阅读(377)  评论(0编辑  收藏  举报