Android: временные интервалы с глубоким сном (System.nanoTime(), System.currentTimeMillis(), SystemClock.elapsedRealtimeNanos())

Я реализую приложение, которое имеет минимальный уровень API 14 (это важно) и требует последовательного измерения интервалов. Нет необходимости в точности мс, просто нужно всегда считать время (прошедшие секунды).

Пока что для обработки временных интервалов я знал такие решения:

  1. System.nanoTime() - Прекрасно работает, если работает Android, но останавливается на глубоком сне (это плохо).
  2. System.currentTimeMillis() - Хорошо, но не подходит, потому что он может быть изменен пользователем или кодом с setCurrentTimeMillis(long),
  3. SystemClock.elapsedRealtimeNanos() - Подсчитывает прошедшее время даже в глубоком сне, но требует уровня API 17.

Есть ли другой способ получить разумный интервал измерения второй точности по API 14?
Я думал об использовании System.currentTimeMillis() прослушивание трансляции позволяет увидеть, изменились ли системные часы. Однако это не кажется лучшим решением.

1 ответ

Решение

Вы пробовали SystemClock.elapsedRealtime ()?

Другие вопросы по тегам