如何获取当前前台应用程序及其在前台的持续时间?

时间:2018-03-27 14:16:58

标签: android

getRunningTasks中的ActivityManager方法可以完美运行,但在21中已弃用。您还可以做什么来获取前台应用程序,然后查看它运行了多长时间前景?

我见过一些变种,但似乎所有这些都是迂回的方式。

感谢。

1 个答案:

答案 0 :(得分:0)

我建议使用Application.ActivityLifecycleCallbacks接口。它允许您在活动调用生命周期方法时进行监听。你可以这样做:

@Override
public void onActivityStarted(Activity activity) {
    if (startedActivities == 0) {
        //App is in foreground get start time, store it in variable
    }
    activityCounter++;
}

@Override
public void onActivityStopped(Activity activity) {
    startedActivities--;
   if (startedActivities == 0) {
        //App is in background, get stored time and here you go
    }
}

还有一些其他想法可以检测应用程序移动到前台/后台,但这只是我的应用程序中可靠的一个。

同时检查this