如何将Roboguice设置为在注入我的活动和广播接收器时使用相同的eventbus实例,如下所示:
@Inject EventBus eventBus;
也就是说: 据我所知,事件总线必须是全局进程单例,以便在我的活动中订阅广播接收器中发布的事件。然而,目前,我似乎每次注射都会获得一个单独的事件总线。
答案 0 :(得分:0)
final EventBus bus = new EventBus();
在您的模块中,
bind(EventBus.class).toInstance(bus); // or an otherwise exposed singleton
在其configure
方法中应该可以解决问题。
据我了解,事件总线必须是全局流程单例,以便在我的活动中订阅广播接收器中发布的事件
不一定。
所需要的只是在广播接收器拥有的事件总线中注册活动(作为监听器)。
可以有许多事件总线实例,每个实例都代表一个基于事件的通信的独立通道。
或者每个广播接收器可以有一个事件总线,甚至几个活动同时订阅它发布的事件。
就其本身而言,没有要求在这里使用单身人士,如果设计选择背后没有充分的理由,我实际上倾向于反对它。