2015-05-20 3 views
1

У меня есть класс, который является отправителем и получателем объектов (одного типа), которые помещаются в Eventbus.Исключить отправителя из принимающего события (Eventbus Greenrobot)

Есть ли способ исключить отправителя из получения события? У меня есть несколько отправителей и я хочу получать события от других отправителей, но от себя.

Пример:

ставит RED на автобусе. Получатели C и D получают событие RED. Но также A (потому что он зарегистрирован для цветовых событий) получает RED. Можно ли этого избежать? Итак, в этом случае (A является отправителем) A не должен быть приемником?

Thanks

ответ

2

Я не думаю, что greenrobot поддерживает это. В качестве обходного пути вы можете либо изменить Color, чтобы иметь поле sender, содержащее ссылку на отправителя, либо обернуть Color в другом классе, который имеет поле sender. Затем метод обработки событий A может выполнить тест if (event.sender != this), прежде чем действовать на событие.

+0

Im, использующий hashcode отправителя и игнорируя эти события в принимающем отправителе. – Soccertrash

+0

Хэш-код не уникален, поэтому ваш подход небезопасен. Вы должны просто передать ссылку на объект, как я и предложил. – cybersam

 Смежные вопросы

  • Нет связанных вопросов^_^