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