タイマーを実装しようとしています。短い (秒) イベントまたは長い (時間など) イベントに使用できます。
理想的には、CPU がオフになっている間 (バッテリーが切れたときなど) に持続する必要があります。System.currentTimeMillis() を使用して開始時刻を設定し、同じ関数を使用して終了時刻を設定すると、うるう秒、うるう年、夏時間の変更などの期間を除いて、ほとんどすべての場合に機能します...または、ユーザーは時間を変更するだけです(私はこれを確認しました)。これは Android システム上にあります。
代わりに、System.nanoTime() を使用した場合、より正確になる可能性があることに加えて、時間の変更などに伴う通常の「苦労」の問題はありません。私の質問は、System.nanoTime() は「つらい時」の任意の時間?適切な用語が何であるかはわかりませんが、たとえば、System.nanoTime() が X で実行され、X+1 時間後にシステムがオフになり (たとえば、Android デバイスのバッテリーが切れた場合)、次に X になります。 +10 時間、システムが起動します。この時点で System.nanoTime() を実行すると 10 時間が返されますか? または、1 時間を返します (システムがオフ/スリープ状態のときに nanoTime が使用する「カウンター」が実行されていない可能性があるため)。