Удаляются ли закрепленные события EventBus автоматически в методе подписчика?

Я использую EventBus компании GreenRobot версии 3.0. И есть раздел документации, в котором говорится, что мы можем публиковать прикрепленные события, и чтобы получать эти события, мы должны подписаться следующим образом:

@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);

Но я хочу знать, действительно ли мне нужно делать это внутри метода подписчика.


person Mauker    schedule 23.03.2016    source источник


Ответы (2)


Нет, не удаляются.

Однако, если вы прикрепляете сообщение только для того, чтобы удалить его, когда кто-то его прочитает, вы описываете очередь.

Прикрепленные события похожи на прикрепленные сообщения на доске объявлений: они предназначены для того, чтобы оставаться «вверху» и быть просмотренными всеми в течение определенного периода времени.

person Alexandre    schedule 23.03.2016

Они остаются в шине до тех пор, пока не будут явно удалены.

person Kuffs    schedule 23.03.2016