Eventbus 是否可以创建多个实例?
如果可以,如何创建?
还是说,没有创建多个实例的场景,只需要一 EventBus.getDefault() 就可以满足所有需求?
![]() | 1 vanxy 2019-12-18 11:34:05 +08:00 ![]() 不可以创建多实例; 没有多个实例的场景; 源码:实际上 EventBus 就是个单例 https://github.com/greenrobot/EventBus/blob/master/EventBus/src/org/greenrobot/eventbus/EventBus.java |
![]() | 2 gramyang 2019-12-18 11:43:17 +08:00 没必要创建多个实例吧,eventbus 就是对 handler 的封装使用。 说场景的话,android 作为前端也没有多复杂的并发场景。 |
![]() | 5 liuhuansir 2019-12-18 13:45:17 +08:00 @maninfog 你没看源码吧? |
![]() | 6 woodensail 2019-12-18 14:01:55 +08:00 @liuhuansir 虽然我不做 android,但是一楼给的注释里面构造函数上的注释写着「 Creates a new EventBus instance; each instance is a separate scope in which events are delivered.」 是可以构造多个的,虽然不推荐。 |
![]() | 7 crayygy 2019-12-18 14:09:45 +08:00 via iPhone 可以创建多个实例,只是 default instance 是个单例。 至于有没有必要,看业务需求,大多数情况下我认为是没有必要的。 |
8 maninfog 2019-12-18 17:04:15 +08:00 via iPhone @liuhuansir 1 楼贴的源码明明白白的 pulic constructor 以及可以通过 Builder 的 build 方法生成新的实例 怎么就是成我没看源码了?有点奇怪,1 楼贴了源码还笃定不可以创建新的实例,而且还说源码"Eventbus 就是个单例",那只是别人帮你实现了一个单例而已。有点奇怪… |
9 gotosky 2020-01-02 16:31:34 +08:00 当然可以 |