订阅方法上是否自动删除了EventBus粘性事件?

时间:2016-03-23 15:47:22

标签: java android event-bus greenrobot-eventbus

我正在使用GreenRobot's EventBus 3.0版。还有一个部分on the docs表示我们可以发布粘性事件,并接收我们必须订阅的事件:

@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void onEvent(MessageEvent event) {
    // Do something with the message.
    // Is the event removed from the bus on this method?
}

所以,我的问题是:订阅者收到粘性事件后,会自动从总线中删除,还是必须手动删除?

注意:我知道我可以使用以下代码在代码的任何其他位置手动删除它们:

EventBus.getDefault().removeStickyEvent(stickyEvent);

但我想知道我是否真的需要在订阅者方法中这样做。

2 个答案:

答案 0 :(得分:7)

不,他们没有被删除。

但是,如果您在某人阅读时只是删除了一条消息,那么您所描述的就是一个队列。

粘性事件就像公告板上的粘性帖子一样:它们意味着保持“顶部”并被所有人观看一段时间。

答案 1 :(得分:3)

它们会一直保留在总线上,直到它们被明确删除。