关于EventBus事件接收不到,遇到过以下几种情况。
1、没有调用EventBus的注册方法(register)
2、接收方法中的参数与发送的不一致,导致EventBus判断没有对应的注册者
3、发送的是粘性事件,并且是同一类型的粘性事件(这个是我最近遇到的)
对于第三点的原因,经过阅读源码发现:
粘性事件会加入一个叫stickyEvents的Map集合中,该集合使用event.getClass作为key,event作为value,因此当出现同一类的粘性事件时,会将之前的粘性事件给替换掉。