【发布时间】:2014-10-08 21:05:56
【问题描述】:
我正在实现一个最低 API 级别为 14(这很重要)并且需要一致的间隔测量的应用程序。不需要毫秒精度,它只需要始终计算时间(经过的秒数)。
到目前为止,为了处理时间间隔,我知道这些解决方案:
-
System.nanoTime()- 如果 Android 正在运行,效果很好,但在深度睡眠时停止(这很糟糕)。 -
System.currentTimeMillis()- 很好,但不合适,因为它可以由用户更改,也可以通过带有setCurrentTimeMillis(long)的代码进行更改。 -
SystemClock.elapsedRealtimeNanos()- 即使在深度睡眠时也会计算经过的时间,但需要 API 级别 17。
还有其他方法可以在 API 14 上获得合理的秒精度区间测量吗?
我想过用System.currentTimeMillis()监听广播意图,看看系统时钟是否发生了变化。然而,这似乎不是最好的解决方案。
【问题讨论】:
-
你有互联网连接吗?在这种情况下,外部资源可能是一种解决方案。
标签: java android time clock nanotime