我已经在这个网站上搜索了我在我的 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();