java - 如何计算当前在我的应用程序中打开的第三方应用程序的时间

标签 java android

我正在尝试制作一个应用程序,该应用程序将计算第三方应用程序的使用时间,并在关闭后弹出并显示该应用程序的运行时间。我们可以通过时间戳为我们的应用程序使用找到相同的东西,如下所述:how to calculate time spent on my app by timestamp
如何计算第三方应用的(开启/激活)时间?

最佳答案

我想您是从 Activity 中调用第三方应用程序的,因此您可以计算从调用应用程序获取结果时开始到调用 onActivityResult 时结束的延迟。

您还可以在调用 onPause 时启动计时器并在调用 onResume 时结束计时器,因为您的 Activity 在另一个 Activity 启动时失去了焦点。

编辑

如果您的应用没有启动其他应用,那么您可以使用具有 READ_LOGS 权限的服务并检测 ActivityManager 日志以查看调用了哪些 Intent,例如

I/ActivityManager(  585): Starting activity: Intent { action=android.intent.action,..}

搜索 ActivityManager 标签。

关于java - 如何计算当前在我的应用程序中打开的第三方应用程序的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38032368/

相关文章:

java - Android Google map 位置发生变化时相机如何移动

android - Logcat Message中的pid, uid, gids是什么意思?

java - 通过 JSpinner 动态调整 JTable 的大小

java - 如何将字符串行与段落分开以使文本成为列表

java - maven 将本地类目录添加到模块的类路径

java - 为 Ford-Fulkerson 算法创建图形对象的智能方法是什么?

android - RxAndroidBle : Periodic advertising scan

android - 将音频文件读入双样本数组

android - Flutter 检查文件存在于 ApplicationDocumentsDirectory

java - struts属性标签检索对象