要获取当前的Activity,可以使用以下方法:
使用getRunningTasks()方法获取正在运行的任务列表,并从中获取当前的Activity。但是,从Android 5.0(API级别21)开始,该方法已被弃用,只有系统应用才能使用该方法。ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);List<ActivityManager.RunningTaskInfo> taskInfoList = activityManager.getRunningTasks(1);String currentActivity = taskInfoList.get(0).topActivity.getClassName();
使用getActivity()方法获取当前Activity。但是,这种方法只能在Activity内部使用。String currentActivity = this.getClass().getSimpleName();
使用getComponentName()方法获取当前Activity的ComponentName。这种方法可以在任何地方使用。String currentActivity = getComponentName().getClassName();
注意:使用上述方法,需要添加android.permission.GET_TASKS
权限。从Android 10(API级别29)开始,该权限被移除,无法直接获取当前Activity。