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();
}
}
}
}
使用List暂存活动,addActivity()来添加一个活动,removeActivity()来删除一个活动,finishAll()来销毁所有活动。可以创建一个BaseActivity,然后在BaseActivity中的onCreate()方法中调用addActivity(this),在onDestroy()中调用removeActivity(this),如果想在某个地方结束所有活动,就可以调用finishAll();
启动活动的规范写法:
如果第二个活动不是自己开发的,在跳转到第二个活动的时候,就不知道该传什么数据了,除非看第二个Activity的源码,如果在开发第二个Activity的时候加一个actionStart()方法,就可以直接调用这个来跳转到第二个activity了。
public static void actionStart(Context context,String data){
Intent intent = new Intent(context,SecondActivity.class);
intent.putExtra("param",data);
context.startActivity(intent);
}