Android: 深度睡眠下的时间间隔(System.nanoTime(),System.currentTimeMillis(),SystemClock.elapsedRealtimeNanos())

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

你有互联网连接吗?如果是这样,外部资源可能是一个解决方案。 - Keppil
1个回答

4

正确的API使用方法是......它在Android API Level 1中被引入。 - kenyee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接