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