【问题标题】:Android: time intervals with deep sleep (System.nanoTime(), System.currentTimeMillis(), SystemClock.elapsedRealtimeNanos())Android:深度睡眠的时间间隔(System.nanoTime()、System.currentTimeMillis()、SystemClock.elapsedRealtimeNanos())
【发布时间】:2014-10-08 21:05:56
【问题描述】:

我正在实现一个最低 API 级别为 14(这很重要)并且需要一致的间隔测量的应用程序。不需要毫秒精度,它只需要始终计算时间(经过的秒数)。

到目前为止,为了处理时间间隔,我知道这些解决方案:

  1. System.nanoTime() - 如果 Android 正在运行,效果很好,但在深度睡眠时停止(这很糟糕)。
  2. System.currentTimeMillis() - 很好,但不合适,因为它可以由用户更改,也可以通过带有setCurrentTimeMillis(long) 的代码进行更改。
  3. SystemClock.elapsedRealtimeNanos() - 即使在深度睡眠时也会计算经过的时间,但需要 API 级别 17。

还有其他方法可以在 API 14 上获得合理的秒精度区间测量吗?
我想过用System.currentTimeMillis()监听广播意图,看看系统时钟是否发生了变化。然而,这似乎不是最好的解决方案。

【问题讨论】:

  • 你有互联网连接吗?在这种情况下,外部资源可能是一种解决方案。

标签: java android time clock nanotime


【解决方案1】:

【讨论】:

  • 使用正确的 API...它是在 Android API Level 1 中引入的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-07
  • 1970-01-01
  • 2017-09-29
相关资源
最近更新 更多