一、创建类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();
版权声明:本文为amberoot原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。