このサイトを検索して、Android Marshmallow アプリケーションで表示されているものに対する回答を探しました。
私のアプリケーションは、受信した activitydetection 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();