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