android - 如何检测应用程序前台时间?
问题描述
如何找到在前台使用的android应用程序的花费时间。我使用了 UsageStatsManager,但它不返回包列表。
此链接中使用的示例代码
解决方案
我认为最好的选择是使用活动的生命周期回调方法。开始时间是您向用户显示的第一个活动的 onCreate()。结束时间可能有点棘手。首先,如果您有多个活动,用户可以退出其中任何一个,因此您需要跟踪当前打开的活动并仅在下一个活动没有出现时才发送结束时间。第二个问题是你应该使用哪种回调方法?不保证会调用 onPause(),并且在从最近清除应用程序之前不会调用 onDestroy()。所以可能 onStop() 是正确的地方。
或者您可以使用应用程序的回调。只需从 Application 类派生并使用它的回调来进行时间跟踪。
推荐阅读
- python - 当dtype转换失败时,用pd.read_csv返回NaN?
- apache-kafka - Kafka Stream Suppress session-windowed-aggregation
- mysql - 是否可以在 SELECT * JOIN 上排除 FK 的选择?
- metatrader4 - 如何在 mql5 中每天运行一次此代码?
- static - constexpr 静态数据成员不存在初始化程序
- jekyll - 使用前面的标题作为 url 永久链接
- excel - 使用 Excel VBA 列出第二级 Outlook 子文件夹中的电子邮件
- python - 如何允许 AWS IOT python SDK 与多个“事物”通信
- java - 如何使用 SpEL 从弹簧属性中获取完整路径/密钥?
- sql - 在日期不同的日期加入表格