Фоновая служба Android против AlarmManager - PullRequest
5 голосов
/ 19 октября 2011

Может ли кто-нибудь дать небольшой брифинг или, возможно, более подробную информацию о различиях фонового сервиса Android с Alarm Manager?

Чем они отличаются? И в какой ситуации я должен использовать каждый?

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

Пусть скажут + Модуль А необходимо синхронизировать каждые 15 минут + Модуль B нужно синхронизировать каждые 1 час + Модуль C нужно синхронизировать каждый день + Модуль D нужно синхронизировать еженедельно + Модуль E нужно синхронизировать ежемесячно

Какой подход лучше? И почему?

Привет

Ответы [ 3 ]

8 голосов
/ 19 октября 2011

Аварийный менеджер по расписанию намерений. Ваш сервис может быть поврежден и может быть удален, если память не доступна. Но если вы запланируете Будильник, вы можете вызвать свою конкретную услугу во время Будильника. В вашем контексте Alarm - лучший вариант, чем запуск сервиса.

Надеюсь, это поможет вам.

0 голосов
/ 31 октября 2018

Этот новый пост в блоге содержит очень хороший анализ: https://android -developers.googleblog.com / 2018/10 / modern-background-execute-in-android.html? LinkId = 58286424

Для синхронизации на регулярной основе вы можете использовать WorkManager, запущенный в определенное время или при запуске push-сообщения (FCM)

0 голосов
/ 19 октября 2011

С помощью AlarmManager вы можете планировать намерения.Ваша служба или BroadcastReceiver могут прослушивать эти запланированные намерения и выполнять задачи в указанное время.Вы можете не только использовать AlarmManager для реализации логики программы.

Вы можете использовать AlarmManager для отправки намерения каждые 15 минут с действием для A, по одному каждый час для B и так далее.Либо ваши модули реализованы как независимые службы, либо вы решаете, какое действие следует предпринять.

Также следует помнить, что длинные операции не должны выполняться в BroadcastReceiver.

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