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