是否有一个应用程序级的入口和出口点可以用来记录我的Android应用程序运行的累计时间?

是否有一个应用程序级的入口和出口点可以用来记录我的Android应用程序运行的累计时间?,android,Android,我的任务是保存Android应用程序在设备上运行的累计记录,包括前台和后台的所有时间 我想我应该在SharedReferences中设置一个开始时间,然后在此基础上进行计算。我想我会重写ondestory()方法,计算启动时间,并将数据存储在SharedReferences中 然后我记得我们的应用程序中有几个活动,如果调用了一个活动的ondestory()方法,我们的其他活动可能仍在运行 我开始寻找我可以使用的应用程序级别的onCreate()和onDestroy(),但我没有成功;我的第一反应

我的任务是保存Android应用程序在设备上运行的累计记录,包括前台和后台的所有时间

我想我应该在
SharedReferences
中设置一个开始时间,然后在此基础上进行计算。我想我会重写
ondestory()
方法,计算启动时间,并将数据存储在
SharedReferences

然后我记得我们的应用程序中有几个活动,如果调用了一个活动的
ondestory()
方法,我们的其他活动可能仍在运行

我开始寻找我可以使用的应用程序级别的
onCreate()
onDestroy()
,但我没有成功;我的第一反应是说“没有”

那么,是否有一个应用程序级的入口和出口点,我可以用来跟踪我们的应用程序在前台和后台运行的累计时间


谢谢

我认为你的思路是对的。我建议您使用BaseAvActivity类,并让您的所有活动扩展该类。这样,Baseactivity的onDestroy总是被调用。按照您在问题中描述的方式在BaseActivity中执行时间管理逻辑。另一个建议是使用您自己的应用程序类

static class ActivityLifecycle implements ActivityLifecycleCallbacks {

    Activity currentActivity;

    @Override
    public void onActivityCreated(Activity activity, Bundle bundle) {
    }

    @Override
    public void onActivityStarted(Activity activity) {
        currentActivity = activity;

    }

    @Override
    public void onActivityResumed(Activity activity) {
        currentActivity = activity;
    }

    @Override
    public void onActivityPaused(Activity activity) {

    }

    @Override
    public void onActivityStopped(Activity activity) {
    }

    @Override
    public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
    }

    @Override
    public void onActivityDestroyed(Activity activity) {
    }
}

通过这种方式,您可以使用应用程序生命周期方法来计算在应用程序中花费的时间

如果Google Analytics Already中没有内置此功能,我会感到惊讶。此应用程序仅适用于我们公司,它将永远不会与Google联系。我曾想过使用
BaseActivity
,但正如我所说,如果activity 1被破坏,activity 2或activity 3可能仍然存在,你可以自由使用应用程序生命周期方法来计算在应用程序中花费的时间。这些方法是什么?我以为
onCreate()
onStart()
onresume()
onPause()
onStop()
onRestart()
,和
onDestroy()
都只在活动中。这意味着没有任何活动可以告诉我整个应用程序是否正在运行。是的,对。。。“活动”。与整个应用程序本身无关。我希望这有帮助。