我正在实现一个应用程序,最低API等级是14(这很重要),需要进行一致的间隔测量。 不需要毫秒精度,它只需要一直计时(经过的秒数)。
至此,我知道以下几种处理时间间隔的方法:
1.
在API 14上是否有其他方法来获得合理的秒精度间隔测量? 我考虑使用
1.
System.nanoTime()
- 在Android运行时效果很好,但在深度睡眠时停止(这很糟糕)。
2. System.currentTimeMillis()
- 不错,但不适合,因为用户可以更改它或使用setCurrentTimeMillis(long)
修改代码。
3. SystemClock.elapsedRealtimeNanos()
- 即使在深度睡眠时也可计算经过的时间,但需要API级别17。在API 14上是否有其他方法来获得合理的秒精度间隔测量? 我考虑使用
System.currentTimeMillis()
监听广播意图,以查看系统时钟是否发生了更改。 但是,这似乎不是最佳解决方案。