public class ActivityCollector {
public static List<Activity> activities = new ArrayList<>();
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();
}
}
}
}
2.修改自己写的BaseActivity中的onCreate()和onDestroy()方法
public class BaseActivity extends AppCompatActivity{
private static final String TAG = "BaseActivity";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, getClass().getName());
ActivityCollector.addActivity(this);//将启动的活动都存入activities
}
@Override
protected void onDestroy() {
super.onDestroy();
ActivityCollector.removeActivity(this);//让退出的活动不再存储再activities
}
}