一、创建类ActivityCollect,在这个类中编写addActivity,removeActivity和finishAll等方法。
package com.example.project_broadcast; import android.app.Activity; import java.util.ArrayList; import java.util.List; /** * Created by Administrator on 17/08/16. */ 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(); } } } }
二、创建类BaseActivity,继承AppCompatActivity,并重写onCreate,onDestroy
package com.example.project_broadcast; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; /** * Created by Administrator on 17/08/16. */ public class BaseActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityCollector.addActivity(this); } @Override protected void onDestroy() { super.onDestroy(); ActivityCollector.removeActivity(this); } }
三、让所有的Activity都继承BaseActivity
然后就可以在你所希望的地方调用finishAll方法。
ActivityCollector.finishAll();