Я пишу простой виджет для Android, который отображает информацию, которая меняется каждый день. Таким образом, виджет должен быть обновлен в полночь. Все обновление реализовано в виде службы и работает хорошо, проблема заключается в вызове:
Единственное решение, которое я нашел, - это использовать AlarmManager
для добавления точного повторяющегося таймера в полночь каждый день. Затем приобретите частичный Wake-Lock, чтобы убедиться, что устройство не спит, и запустите код. Это должно работать, как и ожидалось, но из-за использования функции Wake Lock я просыпаюсь, поэтому ищу более тонкую версию:
Нет необходимости разбудить устройство точно в полночь, достаточно, если я получу событие таймера при первом включении устройства в новый день. Если устройство находится в спящем режиме, никто не может посмотреть на виджет, поэтому нормально, если виджет обновляется при каждом включении устройства.
Другими словами: как запустить службу в первый момент дня, когда устройство не спит, что предотвращает пробуждение? Я все еще нуждаюсь в устройстве, чтобы не спать, чем в течение определенного периода времени.
Как это можно сделать?