设置计时器以衡量应用程序的运行时长

时间:2014-12-18 20:29:45

标签: java android timer adt

我有兴趣添加"播放时间"排成我的应用程序"统计"页。但是我需要一个很好的方法来衡量我的应用程序打开的时间。 设置它的最佳和最有效的方法是什么? 我的应用程序包含多个活动,因此它需要能够运行任何活动。 我的MainActivity永远不会关闭,它会打开其他关闭onFinish()的活动。所以我想在MainActivity期间可能会运行一个计时器?

3 个答案:

答案 0 :(得分:1)

在onResume中获取时间戳,在onPause中获取新的时间戳并保存差异。这两种方法都可以保证作为Activity生命周期的一部分进行调用。如果主要活动的范围在前景不足,您可以使用用户首选项来存储值或将其传递给新活动。

答案 1 :(得分:1)

我还认为最好使用时间戳,不运行线程和使用系统资源(如内存,CPU)...在应用程序的启动/结束时使用时间戳应该更有效。

答案 2 :(得分:1)

使用共享首选项并在应用程序启动时存储开始时间。

System.currentTimeMillis()//当前时间(以毫秒为单位)。

开始时

    SharedPreferences preferences = context.getSharedPreferences("SomeApp", 0);

    SharedPreferences.Editor editor = preferences.edit();
    editor.putLong("startTime", System.currentTimeMillis() );
    editor.commit();

然后在任何时候你都可以提取这个值并计算出的时间。

  SharedPreferences preferences = context.getSharedPreferences("SomeApp", 0);
  long start = preferences.getLong( "startTime" );

  long timeRunInMillis = System.currentTimeMillis() - start;

timeRunInMillis将是您的应用程序在几毫秒内运行的时间。