Android: запуск фоновой задачи с помощью AlarmManager - PullRequest
11 голосов
/ 05 октября 2010

Я пишу приложение, которое должно периодически проверять сервер на наличие новых сообщений и уведомлять пользователя.Я видел несколько примеров использования AlarmManager для запуска BroadcastReciever, что кажется правильным, но я не могу заставить его работать.

Может кто-нибудь показать мне пошаговое руководство для такого рода вещей?(повторяющийся сигнал тревоги, который запускает некоторый фоновый код, который запускает Уведомление)?

TIA

1 Ответ

31 голосов
/ 05 октября 2010

Вот один полный пример: http://android -in-practice.googlecode.com / svn / trunk / ch02 / DealDroidWithService /

Шаблон, который используется в этом примере, и который, как мне показалось, хорошо работает, заключается в использовании загрузочного приемника для настройки AlarmManager (и, конечно, также проверки, чтобы начать опрос с вашего main Activity тоже, для случая, когда ваше приложение установлено, а система не загружается) и AlarmManager отправляет Intent для другого получателя: http://android -in-practice.googlecode.com / SVN / багажник / CH02 / DealDroidWithService / SRC / COM / комплектование / AIP / dealdroid / DealBootReceiver.java

А затем из AlarmReceiver запустите IntentService : http://android -in-practice.googlecode.com / SVN / багажник / CH02 / DealDroidWithService / SRC / COM / комплектование / AIP / dealdroid / DealAlarmReceiver.java

Из вашего IntentService затем позвоните в сеть, чтобы опросить данные или все, что вам нужно сделать. IntentService автоматически помещает вашу работу в фоновый поток, это очень удобно: http://android -in-practice.googlecode.com / SVN / багажник / CH02 / DealDroidWithService / SRC / COM / комплектование / AIP / dealdroid / DealService.java

Проверьте документы для этих классов тоже, много там.

Предостережение в этом примере заключается в том, что он не имеет дело с пробелом блокировки пробуждения (отличный код CommonsWare делает то, что вам нужно), но он может дать вам больше идей о том, как обратиться к материалам "опрос с использованием AlarmManager и Service".

ОБНОВЛЕНИЕ: код теперь здесь: https://github.com/charlieCollins/android-in-practice

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