BroadcastReceiver或Messenger通过处理程序

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

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

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

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

  • Android模拟器:我怎样才能得到正在运行的服务的列表
  • 将服务绑定到活动或片段?
  • 如何从片段开始服务
  • 如何在应用程序从最近的任务中死亡后重新启动服务
  • Android - Firebase jobdispatcher
  • 如何监视SIM状态变化
  • 将一个服务绑定到一个android.app.Activity vs绑定到一个android.app.Application
  • USSD服务不起作用
  • 如果IntentService不知道活动是否存在(例如,可能已经被销毁),或者如果有多个活动可能在前台,并想知道发生了什么,我会使用sendOrderedBroadcast() 。 如果需要的话,你可以安排一个“backstop” BroadcastReceiver来提交一个Notification,就像我在这个博客文章中概述的那样,并且在这个示例项目中演示。

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