Timer Task VS Alarm Manager в службе Android - PullRequest
6 голосов
/ 30 декабря 2011

Мне нужно получать новости / обновления событий с сервера через регулярные промежутки времени, как каждые 20 минут в моем приложении для Android.Комбинация AFAIK Intent Service и Broadcast Receiver будет лучше, чем использование Service, поскольку я не собираюсь связываться с работающей Service.Чтобы получать события через равные промежутки времени, я знаю 2 варианта

1) Используя задачу таймера ScheduleAtFixedRate, я собираюсь запустить IntentService, который будет извлекать события один раз и транслировать, если появятся какие-либо обновления, и уничтожить себя.После заданного интервала IntentService будет снова запущен TimerTask

2) Просто запустите Intent Service при запуске приложения и в Intent Service по методу onHandleIntent. Запуск TimerTask ScheduleAtFixedRate.Если это предпочтительный способ, как и когда я отменяю задание таймера и когда служба намерений будет уничтожена.

, или я должен использовать Alarm Manager.Обратите внимание, что мне нужны эти обновления, пока я использую приложение, а также мне нужны обновления каждые 20–30 минут, а не каждые 1 или 3 минуты.

Любое тело, пожалуйста, предложите мне, Спасибо заранее.

1 Ответ

7 голосов
/ 30 декабря 2011

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

...