我的任务是保留我们的Android应用程序在设备上运行多长时间的累积记录,这包括前景和背景中的所有时间。
我认为我会在SharedPreferences
中设置一个开始时间,然后根据此设置我的计算。我以为我会覆盖onDestroy()
方法并计算函数并将数据存储在SharedPreferences
中。
然后我记得我们的应用程序中有几个活动,如果调用了一个活动的onDestroy()
方法,我们的其他活动仍然可以运行。
我着手寻找一个可以使用的app级onCreate()
和onDestroy()
,但我还没有成功。我的第一个反应是说"没有一个"。
那么,我可以使用应用程序级入口和出口点来跟踪我们的应用程序正在运行,前景和背景的累积时间?
谢谢!
我认为您在正确的轨道上。我建议使用的是使用BaseAvtivity类,并让您的所有活动扩展该课程。这样,始终可以称呼碱性的势利。按照您的问题描述的方式,以固定性进行时间管理逻辑。另一个建议是使用您自己的应用程序类。
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) {
}
}
这样,您可以使用应用程序生命周期方法来计算应用程序所花费的时间。