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