根據API文檔以及之前的SO threads,SystemClock.elapsedRealtime()
應該保持準確的時間,即使設備處於休眠狀態。這不是我觀察到的。當設備處於低功耗模式時,SystemClock.elapsedRealtime()漂移
我寫了一個簡單的時鐘,它位於while (true)
循環中,並基於SystemClock.elapsedRealtime()
的值更新屏幕上的時間。如果我在兩個設備上同步時鐘,例如通過NTP,然後繼續在其中一個設備上開啓和關閉屏幕幾次,顯示的時間將漂移高達+/- 0.7秒。 (這隻發生在手機未連接到外部電源時,因此睡眠模式可能是此處的罪魁禍首)。
這是正常的嗎?這是Android中的錯誤嗎?有什麼辦法通過睡眠/喚醒週期來保持約20毫秒的定時精度?
感謝,似乎你是對的,使用currentTimeMillis()工作有點比elapsedRealtime()在漂移方面更好(它仍然似乎漂移了一下,雖然) –