- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
据充分证明,getRunningTasks 现在在 Android L 中已被弃用。我用它来获取热门 Activity ,这是我的应用程序的一个重要功能。尽管尚未完成,但一位 Google 员工已 promise 在 Android L 中提供新的解决方案。解决方案指出:
“对于 L,我们确实计划有一个新的解决方案来解决 getRecentTasks() 的一些现有用例:我们希望以一种可用的新扩展形式公开系统的内部使用情况统计服务通过 SDK 到第三方应用程序。
新的使用情况统计服务应该有两个主要的信息。首先,它将提供用户在每个应用程序中花费的时间的汇总统计数据,以及这些应用程序的最后启动时间,这些数据汇总了几天、几周、几个月和几年。其次,它将包括过去几天的详细使用事件,描述任何 Activity 转换到前台或后台时的时间和 ComponentName。
访问这些新的使用数据需要用户通过新的设置 UI 明确授予应用访问使用统计信息的权限。他们将能够随时查看所有有权访问和撤消访问权限的应用。
我意识到这不会涵盖旧 getRecentsTask API 的所有可能用途,对此我深表歉意。但是,对于我们看到的 API 当前的主要用途,新的使用情况统计 API 应该更加健壮和高效。”
您可以在此处阅读更多信息:https://code.google.com/p/android-developer-preview/issues/detail?id=29#c50
我已尝试查看 Android L 文档,但找不到任何与上述使用统计服务相关的内容。有人用过这个API吗?谁能指出我的文档?
最佳答案
您的问题中提到的系统统计 api 也显示为 here详细的 API 是 here .据我所知,此 API 不允许您获取当前的热门 Activity 。
即你有能力接收 UsageEvent
类型为 MOVE_TO_FOREGROUND
通过使用 UsageStatsManager.queryEvents
但根据 javadoc :
The last few minutes of the event log will be truncated to prevent abuse by applications.
所以它实际上是一个获取统计信息的 API,而不是获取实时信息。 (请注意,现在已弃用的 getRunningTasks()
既不打算检索实时数据:javadoc)
另一方面,如果您只对您自己的应用程序的热门 Activity 感兴趣:您可以使用 getAppTasks()
返回 List<AppTask>
在哪里可以获得 RecentTaskInfo与 getTaskInfo
编辑:提供了另一种方法here .
它基于 UsageStats和 UsageStats.getLastTimeUsed() .缺点:它需要额外的权限并且只给你包名——而不是 Activity ——,但它给你实时数据。
关于android - Android L 中 getRunningTasks 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26400469/
Android studio 给我一些问题。我明确声明了 android. permission.GET_TASKS 在 list 中。但它仍然关闭应用程序。错误: Caused by: java.l
getRunningTasks 在 LOLLIPOP 中已弃用。您必须使用 UsageStatsManager 才能获取前台应用程序的包名称。我已经在 Android 6.0 上测试过,一切正常。 问
我已经完成了这个question还有这个question .但是借助这个 library我现在可以使用以下代码获取前台任务列表。 if (Build.VERSION.SDK_INT taskInfo
我在我的一个应用程序中使用 getRunningTask API 来查找前台应用程序。自 Lollipop 以来,此 API 已被弃用。弃用之后,我更喜欢 getRunningAppProcess A
如果您想要“在顶部”获取 Activity ,您可以在 ActivityManager 上调用 getRunningTasks(1),您将获得类似于 com.google 的内容。 result.To
我正在 android 中处理推送通知,我正在使用以下方法显示通知,但问题是现在 ActivityManager.getRunningTasks(1);正在被弃用。从一个stackoverflow问题
ActivityManager am = (ActivityManager)this.getSystemService(Activity.ACTIVITY_SERVICE); List tasks =
在 Android L 中,Google 已禁用 getRunningTasks。现在它只能返回自己的应用程序任务和主页启动器。我无法再获得其他应用程序任务。我们的应用需要该方法来确定当前的热门应用。
据充分证明,getRunningTasks 现在在 Android L 中已被弃用。我用它来获取热门 Activity ,这是我的应用程序的一个重要功能。尽管尚未完成,但一位 Google 员工已 p
本文整理了Java中io.druid.indexing.overlord.ZkWorker.getRunningTasks()方法的一些代码示例,展示了ZkWorker.getRunningTasks
正如您在下面的代码中看到的那样,我将目标 api 设置为 18,并且我运行了进程 getRunningTasks,但它给了我一个错误并关闭了我的应用程序。 @TargetApi(18) public
我是一名优秀的程序员,十分优秀!