2015-04-30 5 views
1

В приложении, которое я разрабатываю, я начал использовать EventBus для уведомления о том, что произошли некоторые события внутри приложения. Мне интересно, стоит ли уведомлять другие прикладные компоненты (особенно UI элементов), что появилось около UI событий.EventBus для уведомления об изменениях пользовательского интерфейса

Например, имеется раздвижная панель, и когда она расширяется, должно появляться какое-либо поле поиска, и всякий раз, когда она рушится, необходимо выполнить некоторые другие действия. Правильно ли использовать здесь EventBus? Я спрашиваю об этом, так как у меня есть опасения, что, если я собираюсь использовать EventBus для уведомления UI событий, тогда появятся некоторые проблемы с производительностью.

Возможно, есть какой-то лучший способ сохранить ваши элементы UI развязанными и не использовать EventBus для уведомления о том, что появилось какое-то событие?

ответ

0

На мой взгляд, для этого вам действительно не нужна шина событий, вы можете просто зарегистрировать некоторые обратные вызовы или прослушиватели и сообщить об этом соответствующим образом.

+0

Благодарим вас за ответ. Проблема в том, что внутри приложения существует множество различных элементов 'UI', обернутых разными контроллерами, и я бы не хотел, чтобы они были тесно связаны. Мне очень нравится идея, что один контроллер отправляет событие, а другой отвечает на него. –

0

Я предполагаю, что вы говорите о событии GreenRobot Eventbus в этом ответе.

В этом случае я не считаю, что накладные расходы - это большое дело, оно очень хорошо масштабируется в моем опыте, версия 3.0 с аннотациями сильно оптимизирована.

Но лучший способ - попробовать, и если вы беспокоитесь о производительности, то проверьте это на этом пути, но похоже, что у вас не было бы проблем. Хорошая вещь с EventBus также является развязкой.