Android之获取当前Activity名称
16lz
2021-01-23
一、创建类ActivityCollector
public class ActivityCollector { public static List 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();
更多相关文章
- Android读取手机联系人且获得联系人手机号+名称
- android工程没有gen路径
- android studio 3.0 修改release生成的apk名称
- 开发者工程师软件工程师的IOS,WindowsPhone前景与android对比
- Android工程 引用另外一个Android工程(类库)