事件巴士粘性事件

时间:2018-07-24 06:46:35

标签: android event-bus greenrobot-eventbus

我对Android EventBus事件有疑问。

如果事件被发布为非粘性事件,是否有任何用sticky = true注释事件总线订户回调方法的含义?

我使用eventBus.post(new MyEvent())而不是eventBus.postSticky(new MyEvent())来触发事件。

1 个答案:

答案 0 :(得分:2)

(为EventBus v3.0.0编写的答案)。


据我所知,在这种情况下注册时,没有事件会传递给订阅方法。

当新的订阅方法为processed时,请checked查看是否用sticky = true进行了注释。然后,EventBus iterates over all events previously posted using postStickydelivers(如果适用)(例如,如果找到correct Java type的事件)保存的粘性事件。

在您的特定情况下,在迭代阶段将找不到合适类型的粘性事件,因此,尽管有sticky = true批注,但在订阅方法注册时不会传递任何内容。该方法仍应接收其注册后 后发布的所有事件。

如果您想再次检查我对EventBus代码的解析,应该迅速组合一个小的示例应用程序来隔离测试您的方案。

希望有帮助!