Android: временные интервалы с глубоким сном (System.nanoTime(), System.currentTimeMillis(), SystemClock.elapsedRealtimeNanos())
Я реализую приложение, которое имеет минимальный уровень API 14 (это важно) и требует последовательного измерения интервалов. Нет необходимости в точности мс, просто нужно всегда считать время (прошедшие секунды).
Пока что для обработки временных интервалов я знал такие решения:
System.nanoTime()
- Прекрасно работает, если работает Android, но останавливается на глубоком сне (это плохо).System.currentTimeMillis()
- Хорошо, но не подходит, потому что он может быть изменен пользователем или кодом сsetCurrentTimeMillis(long)
,SystemClock.elapsedRealtimeNanos()
- Подсчитывает прошедшее время даже в глубоком сне, но требует уровня API 17.
Есть ли другой способ получить разумный интервал измерения второй точности по API 14?
Я думал об использовании System.currentTimeMillis()
прослушивание трансляции позволяет увидеть, изменились ли системные часы. Однако это не кажется лучшим решением.