版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a243845305/article/details/51211568
我们都知道BaseActivity的作用就是将一些所有Activity都会用到的方法抽象出来到一个父类中去,之后子类只需要继承这样一个BaseActivity就可以完成一些常用的方法而不需要重新编写。
在这里我们写一个活动管理器,来方便应用程序对其Activity的管理与注销
新建一个ActivityCollector类作为活动管理器
public class ActivityCollector {
public static List<Activity> activities = new ArrayList<Activity>();
public static void addActivity(Activity activity){
activities.add(activity);
}
public static void removeActivity(Activity activity){
activities.remove(activity);
}
public static void finishAll(){
for (Activity activity : activities){
if (! activity.isFinishing()){
activity.finish();
}
}
}
}
接下来我们修改一下BaseActivity中的代码
public class BaseActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}
这样,当我们需要在应用中把所有Activity跟随软件的退出而销毁时,只需要调用一下ActivityCollector的静态方法就可以了。