Есть ли обходной путь для ACTION_TIME_TICK
ACTION_TIME_TICK
может быть зарегистрирован только через registerReceiver()
из чего-то, что уже запущено.В вашем случае это «что-то» должно быть постоянно работающим Service
, и это, как правило, против паттерна.Пользователи и ОС могут при желании избавиться от этой службы.
Я бы нашел способ слегка ослабить требование "синхронно с системными часами", а затем использовать AlarmManager
.В конце концов, Android не является ОСРВ, поэтому ничто не будет «синхронизировано с системными часами» в любом гарантированном смысле.
Используя AlarmManager
, вы должны указать первый сигнал тревоги длябыть "вершиной" следующей минуты с периодом 60 секунд и setRepeating()
.Или вы должны set()
запланировать на «вершину» следующей минуты, а затем запланировать следующий с помощью set()
как часть своей собственной обработки, если вы считаете, что вы можете вручную исправить дрейф таким образом.