Java 如何计算当前在我的应用中打开的第三方应用的时间

Java 如何计算当前在我的应用中打开的第三方应用的时间,java,android,Java,Android,我正在尝试制作一个应用程序,它将计算第三方应用程序的使用时间,关闭后,它将弹出并显示应用程序的打开时间。我们可以通过这里描述的时间戳找到应用程序使用的相同内容: 如何计算第三方应用程序的(打开/激活)时间?我猜您是从活动中调用第三方应用程序的,因此您可以计算从调用应用程序获取结果开始到调用onActivityResult结束的延迟 您还可以在调用onPause时启动计时器,在调用onResume时结束计时器,因为当另一个活动启动时,您的活动会失去焦点 编辑 如果您的应用程序未启动其他应用程序,则

我正在尝试制作一个应用程序,它将计算第三方应用程序的使用时间,关闭后,它将弹出并显示应用程序的打开时间。我们可以通过这里描述的时间戳找到应用程序使用的相同内容:

如何计算第三方应用程序的(打开/激活)时间?

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

您还可以在调用onPause时启动计时器,在调用onResume时结束计时器,因为当另一个活动启动时,您的活动会失去焦点

编辑

如果您的应用程序未启动其他应用程序,则您可以使用具有READ_LOGS权限的服务,并检测ActivityManager日志以查看调用了哪些意图,如

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

搜索ActivityManager标签。

您需要小心使用
onPause
onResume
,因为用户可能会最小化应用程序,然后返回。如何从应用程序启动第三方应用程序?您好,我希望我的应用程序在后台收集信息,当第三方应用程序关闭时,它将弹出。我的意思是,当你在手机上启动/使用任何应用程序时,我的应用程序应该开始在后台计算时间,当活动结束时,它应该像弹出窗口一样打开。我不想从我的应用启动第三方应用。