Eventbus 是否可以创建多个实例?
如果可以,如何创建?
还是说,没有创建多个实例的场景,只需要一 EventBus.getDefault() 就可以满足所有需求?
1
vanxy 2019-12-18 11:34:05 +08:00 1
不可以创建多实例;
没有多个实例的场景; 源码:实际上 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
当然可以
|