gpt4 book ai didi

android - 设备处于低功耗模式时 SystemClock.elapsedRealtime() 漂移

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:07 30 4
gpt4 key购买 nike

根据 API 文档以及之前的 SO threads , SystemClock.elapsedRealtime() 应该即使在设备处于 sleep 状态时也能保持准确的时间。这不是我观察到的。

我编写了一个简单的时钟,它位于 while (true) 循环中,并根据 SystemClock.elapsedRealtime() 的值更新屏幕上的时间。如果我同步两个设备上的时钟,例如通过 NTP,然后继续在其中一台设备上打开和关闭屏幕几次,显示的时间将漂移最多 +/- 0.7 秒。 (这只会在手机未连接到外部电源时发生,因此 sleep 模式可能是这里的罪魁祸首)。

这正常吗?这是Android中的错误吗?有什么方法可以在整个 sleep /唤醒周期中保持约 20 毫秒的计时精度?

最佳答案

我有一个每分钟与服务器通信一次的应用程序。它通过在启动时记录服务器时间和 SystemClock.elapsedRealtime() 然后使用 elapsedRealtime 计算服务器时间来同步设备时钟和服务器时钟(我这样做是因为设备本身从网络同步时间并且####不能完全值得信任)。

在一周的时间里,在 Galaxy Tab 2 上运行,SystemClock.elapsedRealtime() 比服务器时钟晚了几分钟,不到 两个小时。我的日志显示漂移速度不是恒定的,因此设备的使用方式确实会影响它。

虽然 API 要求时钟提供单调时间,但不保证准确性。因此,它不是长时间准确记录时间的有用方法。

关于android - 设备处于低功耗模式时 SystemClock.elapsedRealtime() 漂移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11231657/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com