一、概述
long long ago ,记得面试的时候,面试官问了我这样一个问题:当Android应用退出的时候,关闭所有的Activity。当时我答出来了一种非主流的做法。现在我总结了三种退出所有Activity的可行方法(应该还有方法,欢迎小伙伴们补充)。分别是:
1.自定义Application来管理所有的Activity
2.使用广播来管理
3.利用Activity的任务栈来管理
二、方法1:
自定义Application来管理所有的Activity
1.新建BaseApplication继承Application:
package com.demo_ld_exitallaty.app;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.Application;
/**
*
* @ClassName: BaseApplication
* @Description:Application 基础类
* @author kevin.li
* @date:2015-9-16 下午13:00:35
*
*/
public class BaseApplication extends Application {
// 保存所有的Activity
private List<Activity> activityList;
/**
* 添加activity到activityList集合中
* @param activity
* 每一個activity
*/
public void addActivity(Activity activity) {
if (activityList == null) {
activityList = new ArrayList<Activity>();
}
activityList.add(activity);
}
public int getListSize() {
if (activityList != null) {
return activityList.size();
}
return 0;
}
public void removeActivity(Activity activity) {
if (activityList != null) {
if (activityList.contains(activity)) {
activityList.remove(activity);
}
}
}
/** 清空列表,取消引用 */
public void