Сервис или BroadcastReceiver? - PullRequest
       0

Сервис или BroadcastReceiver?

1 голос
/ 07 марта 2012

Впервые я попытался реализовать любой из них, и я не уверен, какой из них использовать.

Я хочу, чтобы мое приложение создавало временные рамки, например, с 2/3/12 по 7/3/12.Несколько временных периодов, таких как это, могут быть созданы.Разные интервалы (например, каждые 4 часа) Я хотел бы, чтобы мое приложение выполняло некоторые действия для каждого периода времени.Это нужно сделать в фоновом режиме.

Сначала я попытался реализовать это с помощью службы, но выполняю все действия для каждого из временных периодов одновременно.После прочтения блога Android "Многозадачность Android" я думаю, что, возможно, BroadcastReceivers лучше.

Пожалуйста, посоветуйте

Ответы [ 2 ]

2 голосов
/ 07 марта 2012

Возможно, вам следует использовать AlarmManager и IntentService .

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

2 голосов
/ 07 марта 2012

Пожалуйста, смотрите мой ответ об использовании AlarmManager - Периодическое выполнение задачи (один раз в день / один раз в неделю)

Если вы запускаете процесс только в установленное время, а не постоянно(например, мониторинг уровня звука), тогда вы будете просить службу сидеть 90% времени и ничего не делать, кроме разряженной батареи.AlarmManager решает эту проблему, так как уведомляет приемник вещания о необходимости выполнения в указанное время.

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

...