API ドキュメントによると、以前のSO スレッドと同様SystemClock.elapsedRealtime()
に、デバイスがスリープ状態であっても正確な時間を維持することになっています。これは私が観察するものではありません。
while (true)
の値に基づいてループし、画面上の時間を更新する単純な時計を作成しましたSystemClock.elapsedRealtime()
。NTP などを使用して 2 つのデバイスの時計を同期させ、いずれかのデバイスで画面のオンとオフを数回切り替えると、表示される時間が最大 +/- 0.7 秒ずれます。(これは、電話が外部電源に接続されていない場合にのみ発生するため、スリープ モードが原因である可能性があります)。
これは正常ですか?これは Android のバグですか?スリープ/ウェイク サイクルで最大 20 ミリ秒のタイミング精度を維持する方法はありますか?