我对Android EventBus事件有疑问。
如果事件被发布为非粘性事件,是否有任何用sticky = true
注释事件总线订户回调方法的含义?
我使用eventBus.post(new MyEvent())
而不是eventBus.postSticky(new MyEvent())
来触发事件。
答案 0 :(得分:2)
(为EventBus v3.0.0编写的答案)。
据我所知,在这种情况下注册时,没有事件会传递给订阅方法。
当新的订阅方法为processed时,请checked查看是否用sticky = true
进行了注释。然后,EventBus iterates over all events previously posted using postSticky
和delivers(如果适用)(例如,如果找到correct Java type的事件)保存的粘性事件。
在您的特定情况下,在迭代阶段将找不到合适类型的粘性事件,因此,尽管有sticky = true
批注,但在订阅方法注册时不会传递任何内容。该方法仍应接收其注册后 后发布的所有事件。
如果您想再次检查我对EventBus代码的解析,应该迅速组合一个小的示例应用程序来隔离测试您的方案。
希望有帮助!