将服务的价值传递给许多活动

passing value from Service to many Activities

我需要将值从服务传递给许多活动,其中一些活动甚至还没有初始化,但我希望这些活动在初始化时获得价值。我知道广播是一种有用的方式,但速度相对较慢。有什么办法可以实现这个目标吗?谢谢!

一种选择是使用 greenrobot's EventBus, using its sticky events 功能。让您的活动在 onStart() 中注册到总线并在 onStop() 中注销。根据需要使用 postSticky() 在总线上安排您的服务 post 事件。然后您的活动将获得事件:

  • 当他们 posted

  • 当他们在总线上注册时,如果在创建之前 post 编辑了一个粘性事件——他们会得到最后一个这样的事件