我正在实现一个具有最低 API 级别 14(这很重要)并且需要一致的间隔测量的应用程序。不需要毫秒精度,它只需要始终计算时间(经过的秒数)。
到目前为止,为了处理时间间隔,我知道这些解决方案:
System.nanoTime()
- 如果 Android 正在运行,效果很好,但在深度睡眠时停止(这很糟糕)。System.currentTimeMillis()
- 好,但不合适,因为它可以由用户或使用setCurrentTimeMillis(long)
.SystemClock.elapsedRealtimeNanos()
- 即使在深度睡眠时也计算经过的时间,但需要 API 级别 17。
是否有另一种方法可以在 API 14 上获得合理的第二精度间隔测量?
我想过使用System.currentTimeMillis()
监听广播意图来查看系统时钟是否发生了变化。然而,这似乎不是最好的解决方案。