BroadcastReceiver или Messenger через обработчик - PullRequest
15 голосов
/ 10 сентября 2011

У меня есть IntentService, которому нужно передать сообщение на Activity.Я знаю два способа сделать это.

  1. использовать sendBroadcast() на стороне Service при регистрации broadcastReciever на стороне Activity, которая получит сообщение.

  2. передача Messenger Сервису side, который будет указывать на Handler на стороне Activity, которая будет готова получить это сообщение от сервиса.

Какой из них подходит для какой цели?Или они оба делают то же самое?

1 Ответ

11 голосов
/ 10 сентября 2011

Если ваш IntentService не знает, будет ли действие (например, могло быть уничтожено), или если есть несколько действий, которые могут быть на переднем плане и хотели бы знать о том, что происходит, я бы используйте sendOrderedBroadcast(). Затем вы можете также организовать «обратную остановку» BroadcastReceiver, которая может при необходимости вызвать Уведомление, как я обрисую в этом сообщении в блоге и продемонстрирую в этот пример проекта .

Впрочем, любой из ваших приемов может работать.

...