一、创建类ActivityCollector
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);
if (!activity.isFinishing()) {
activity.finish();
}
}
public static void finishAll() {
for(Activity activity:activities){
if (!activity.isFinishing()) {
activity.finish();
}
}
activities.clear();
}
}
二、创建一个BaseActivity类继承与AppCompatActivity,让工程里所有的Activity都继承于BaseActivity。
public class BaseActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Log.i("BaseActivity", getClass().getSimpleName());
ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy(){
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}
三、获取当前Activity名称
1. 不包括包名的Activity名称(例如MainActivity)
int num = ActivityCollector.activities.size()-1;
String activityName = ActivityCollector.activities.get(num).getClass().getSimpleName();
2.包括包名的Activity名称(例如View.Presentation.MainActivity)
int num = ActivityCollector.activities.size()-1;
String activityName = ActivityCollector.activities.get(num).getLocalClassName();