AlarmService onBoot с интервалом, основанным на переменной - PullRequest
0 голосов
/ 09 февраля 2012

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

Я немного борюсь с тем, как я это делаю.Я думаю, что у меня есть проверка BroadcastReceiver для Intent.ACTION_BOOT_COMPLETED, а затем запустить AlarmService на основе переменной, уже где-то установленной.

Но что произойдет, если пользователь хочет обновить интервал?Как остановить старый AlarmService и заменить его новым?

Кроме того, как мне сделать так, чтобы мой AlarmService запускал часть «фонового обновления» в моем приложении, фактически не выполняя никаких действий?

РЕДАКТИРОВАТЬ: Также кто-то может посоветовать, правильно ли я использую AlarmService?Я хотел бы проверять наличие обновлений довольно часто, должен ли я использовать какой-то другой метод?Я бы проверил от 1 до 5 минут.

1 Ответ

0 голосов
/ 09 февраля 2012

Я делаю похожую вещь в моем приложении. У меня в основном есть две службы: одна устанавливает тревогу, а другая выполняет фактическую загрузку. Когда ваш BroadcastReceiver получает намерение ACTION_BOOT_COMPLETED, вы запускаете ваш alarmService, который отправляет широковещательную рассылку для запуска downloadService. Таким образом, ваш BroadcastReceiver делает обе вещи: запускает alarmServcie, если намерено == BOOT_COMPLETED, иначе он запускает службу загрузки. Кроме того, если пользователь меняет периоды, в которые он хочет, чтобы эти обновления выполнялись, вы сохраняете выбранное значение в настройках, запускаете alarmservice и извлекаете значения для установки нового периода, e. г. 1 час, 2 часа

Редактировать: Вот информация, некоторая информация из документов о ожидающих намерениях и как их отменить. http://developer.android.com/reference/android/app/PendingIntent.html

Когда пользователь меняет интервал, вы должны сначала отменить свою старую службу сигнализации, а затем снова установить ее.

...