BroadcastReceiver或Messenger通过处理程序

我有一个IntentService需要传递一个消息给一个Activity 。 我知道两种方式。

  1. Service端使用sendBroadcast() ,同时在接收消息的Activity端注册broadcastReciever

  2. 将一个Messenger传递给Service side ,它将指向Activity端的Handler ,它将准备好接收来自服务的消息。

哪一个有利于哪个目的? 或者他们两个都一样?

Solutions Collecting From Web of "BroadcastReceiver或Messenger通过处理程序"

如果IntentService不知道活动是否存在(例如,可能已经被销毁),或者如果有多个活动可能在前台,并想知道发生了什么,我会使用sendOrderedBroadcast() 。 如果需要的话,你可以安排一个“backstop” BroadcastReceiver来提交一个Notification,就像我在这个博客文章中概述的那样,并且在这个示例项目中演示。

不过你的技术都可以工作。