安卓中一般在BaseActivity 管理所有的Activity 因为所有的Activity 继承自BaseActivity
步骤:
1:在BaseActivity New 一个ArrayList 存储Activity
private List<Activity> allActivity = new ArrayList<>();
2.写两个方法进行添加Activity到allActivity中
protected void registerActivity(Activity activity) {
allActivity.add(activity);
}
protected void unRegisterActivity(final Activity activity) {
if (getCurrentActivity() == activity) {
setCurrentActivity(null);
}
allActivity.remove(activity);
}
3.在BaseActivity的OnCreate()方法中:
registerActivity(this);
4.在BaseActivity的OnDestory()方法中:
unRegisterActivity(this);
5.如果某个Activity不想加入allActivity 进行管理 就重写上面两个方法
@Override
protected void registerActivity(Activity activity) {
//去掉super()
}
@Override
protected void unRegisterActivity(Activity activity) {
//去掉super()
}
6.如果要销毁所有的Activity
在BaseActivity中添加一个方法:
public static void finishAllActivity() {
if (!ThreadExecutor.isMainThread()) {
throw new IllegalStateException("Must called on main thread");
}
for (Activity activity : allActivity) {
if (activity != null) {
activity.finish();
}
}
allActivity.clear();
}
在想调用的地方调用即可
个人GitHub: https://github.com/HuaDanJson