在MainActivity
我想了解App中打开的当前热门Activity
。
对于前棒棒糖,我使用了以下
ActivityManager am = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
在我发现的其他帖子上,我应该使用:
getAppTasks() and gettaskinfo
但我无法找到任何完整的示例来演示如何使用上述内容。任何帮助都很感激。问候。
编辑: 目前的代码:
if (Build.VERSION.SDK_INT >= 23) {
cn = am.getAppTasks().get(0).getTaskInfo().topActivity;
}else{
cn = am.getRunningTasks(1).get(0).topActivity;
}
am.getRunningTasks在API 21中已弃用。并且am.getAppTasks#topActivity在API 23中可用。因此更新的问题是如何为API 21和22处理它。
答案 0 :(得分:1)
ActivityManager mgr = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
if (mgr != null) {
List<ActivityManager.AppTask> tasks = mgr.getAppTasks();
String className;
if (tasks != null && !tasks.isEmpty()) {
className = tasks.get(0).getTaskInfo().topActivity.getClassName();
}
}
积分转到https://www.intertech.com/Blog/android-5-api-changes-getapptasks/