我在这个网站上搜索了我在Android Marshmallow应用程序中看到的答案。
我的应用程序测量收到的活动检测api意图之间的持续时间。在处理意图的例程中,我使用System.nanoTime()
并保持接收的值。收到下一个意图后,我会从当前System.nanoTime()
中的持久存储中减去上一个System.nanoTime()
时间。
我的logcat时间戳条目表示在意向活动之间发生~10秒。使用System.nanoTime
计算的经过时间显示从1到预期的10秒的任何地方。
确定经过时间的所有处理都在单个对象中完成。计算的经过持续时间和当前纳秒时间的持续都在该单例中完成。
为什么值不正确的任何想法?我的应用程序正在运行,但屏幕已锁定。
protected synchronized int distanceUpdate(Cursor dbCursor, String activity){
...
long currentNanoTime = 0;
long tmpTotDuration = 0;
...
currentNanoTime = System.nanoTime();
...
tmpTotDuration +=(currentNanoTime - lastTotalTime);
其中lastTotalTime是从持久存储加载的局部变量。 改为
ecurrentNanoTime = SystemClock.elapsedRealTimeNanos();