1、Application的生命周期是从程序安装到程序卸载,所以可以在Application里建个Activity栈,用来专门维护Activity。
2、首先是先自定义个Application,这个Application是单例的,所以他的栈也只有一个。
/**
* Application基类.
*
*
*/
public class BaseApplication extends Application {
/**
* 类标识.
*/
public static final String TAG = TAGBuilder.build(BaseApplication.class);
/**
* Activity栈.
*/
private List<BaseActivity> mActivityList = null;
@Override
public void onCreate() {
super.onCreate();
initActivityList();
}
/**
* 初始化Activity栈.
*/
private void initActivityList() {
if (mActivityList == null) {
mActivityList = new ArrayList<BaseActivity>();
}
}
/**
* 压栈.
*
* @param activity
* .
*/
void push(BaseActivity activity) {
mActivityList.add(activity);
}
/**
* 关闭所有Activity.
*/
public void finishAll() {
for (BaseActivity activity : mActivityList) {
activity.finish();
}
}}