gpt4 book ai didi

android - Android L 中 getRunningTasks 的替代方案

转载 作者:IT老高 更新时间:2023-10-28 22:09:49 28 4
gpt4 key购买 nike

据充分证明,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 .

它基于 UsageStatsUsageStats.getLastTimeUsed() .缺点:它需要额外的权限并且只给你包名——而不是 Activity ——,但它给你实时数据。

关于android - Android L 中 getRunningTasks 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26400469/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com