我正在实现一个最低 API 级别 14(这很重要)并且需要一致的间隔测量的应用程序。不需要 ms 精度,它只需要始终计算时间(经过的秒数)。
到目前为止,要处理时间间隔,我知道这些解决方案:
System.nanoTime()
- 如果 Android 正在运行,效果很好,但在深度 sleep 时停止(这很糟糕)。System.currentTimeMillis()
- 很好,但不合适,因为它可以由用户或使用setCurrentTimeMillis(long)
的代码更改。SystemClock.elapsedRealtimeNanos()
- 即使在深度 sleep 时也计算耗时,但需要 API 级别 17。
是否有另一种方法可以在 API 14 上获得合理的秒精度间隔测量?
我考虑过使用 System.currentTimeMillis()
来监听广播 Intent ,看看系统时钟是否发生了变化。然而,这似乎不是最好的解决方案。
最佳答案
你试过了吗 SystemClock.elapsedRealtime() ?
关于java - Android:深度 sleep 的时间间隔(System.nanoTime(), System.currentTimeMillis(), SystemClock.elapsedRealtimeNanos()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26266441/