Android AlarmManager сервис без пробуждения - PullRequest
1 голос
/ 31 декабря 2011

Я пишу сервис Android, который проверяет веб-сайт каждый день в 17:00. Если определенные условия будут выполнены, будет выдано уведомление, если нет, то ничего не должно произойти.

Сначала я попытался реализовать его в качестве фоновой службы, которая запускает поток, который спит в течение нескольких миллисекунд до следующих 5 часов вечера, затем выполняет проверку и вызывает уведомление, если это необходимо, а затем снова возвращается в спящий режим. , Это сработало, если я был около 17:00, когда служба была запущена, но не иначе, и я узнал после поиска в Google, что Android может убить службу в любое время, поэтому я думаю, что это не рекомендуемое решение.

Кажется, что все рекомендации, которые я нахожу, указывают на AlarmManager, который я также рассмотрел прежде, чем приступить к реализации вышеуказанного решения, но у него есть один недостаток. Если я использую RTC в качестве типа, то проверка не будет выполняться до тех пор, пока пользователь не начнет использовать телефон, я хочу, чтобы это было сделано даже в режиме ожидания. Однако я не хочу использовать RTC_WAKEUP, потому что не хочу, чтобы экран включался, если я не пришел к выводу, что уведомление должно быть поднято.

Полагаю, это должно быть выполнимо, поскольку это именно то, что делает любое почтовое приложение. Экран не появляется каждую минуту, если именно так почтовый сервис проверяет сервер на наличие новых сообщений.

RTC_WAKEUP действительно включает экран? Если да, есть ли другой предпочтительный метод для реализации вышеуказанного сценария?

1 Ответ

2 голосов
/ 31 декабря 2011

Однако я не хочу использовать RTC_WAKEUP, потому что я не хочу, чтобы экран включался, если я не пришел к выводу, что уведомление должно быть поднято.

RTC_WAKEUP не включает экран.

RTC_WAKEUP действительно включает экран?

Нет. Здесь только «просыпается» процессор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...