如何检测应用程序前台时间?

How to detect an application foreground time?

如何查找 android 应用程序在前台使用的时间。我使用了 UsageStatsManager,但它没有 return 软件包列表。

我认为最好的选择是使用活动的生命周期回调方法。开始时间是您向用户显示的第一个 activity 的 onCreate()。结束时间可能有点棘手。首先,如果你有多个活动,用户可以退出其中任何一个,所以你需要跟踪当前打开的 activity 并仅在下一个 activity 没有出现时才发送结束时间。第二个问题是你应该使用哪种回调方法? onPause() 不能保证被调用,并且 onDestroy() 不会被调用,直到应用程序从最近的应用程序中清除。所以 probablt onStop() 是正确的地方。

或者您可以使用 应用程序 的回调。只需派生自应用程序 class 并将其回调用于您的时间跟踪。