Android之获取当前Activity名称

匿名 (未验证) 提交于 2019-12-03 00:32:02

一、创建类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();


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!