BroadcastReceiver или Messenger через обработчик

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

  • используйте sendBroadcast() на стороне Service при регистрации broadcastReciever на стороне Activity, которая будет принимать сообщение.

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

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

Ответы

Ответ 1

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

Однако любой из ваших методов может работать.