根据 API 文档以及之前的SO 线程,SystemClock.elapsedRealtime()
即使设备处于睡眠状态,也应该保持准确的时间。这不是我观察到的。
我编写了一个简单的时钟,它位于一个while (true)
循环中,并根据 的值更新屏幕上的时间SystemClock.elapsedRealtime()
。如果我在两个设备上同步时钟,例如通过 NTP,然后在其中一个设备上打开和关闭屏幕几次,显示的时间将漂移最多 +/- 0.7 秒。(这仅在手机未连接到外部电源时发生,因此睡眠模式可能是这里的罪魁祸首)。
这是正常的吗?这是Android中的错误吗?有没有办法在睡眠/唤醒周期中保持约 20 毫秒的计时精度?