2014-12-23 4 views
2

Я использую RoboGuice 3.0.1 вместе с RoboBlender в своем приложении для Android. Я хотел бы иметь глобальный менеджер событий и заметил, что RG3.0 уже есть это, как указано здесь: https://github.com/roboguice/roboguice/issues/150Глобальный менеджер событий Roboguice

Я добавил

bind(EventManager.class).annotatedWith(Names.named(DefaultRoboModule.GLOBAL_EVENT_MANAGER_NAME)).to(EventManager.class).asEagerSingleton(); 

в моем пользовательском классе модуля внутри Configure().

У меня есть singleton WebUtil.class, который выполняет запрос веб-API. Я хочу использовать глобальный диспетчер событий для отправки события после завершения запроса API. я вводил EventManager с помощью:

@Inject EventManager eventManager; 

События посылаются с помощью:

eventManager.fire(new MyAPIEvent()); 

У меня есть метод наблюдателя в моем классе активность:

handleAPICallback(@Observes MyAPIEvent apiEvent) { 
// do something with apiEvent object 
} 

Но я не см. вызов handleAPICallback(). Я искал в Интернете и не смог найти ни одного примера для GlobalEventManager.

Любая помощь была бы принята с благодарностью.

+0

Является ли ваша деятельность на переднем плане в момент, когда событие уволено? – naXa

+0

Да. Активность на переднем плане. – Vijay

+0

Если вы можете предоставить пример глобального диспетчера событий в RG3.0, это было бы очень полезно для многих из нас. – Vijay

ответ

1

Я решил этот вопрос, разместив на странице github для RG. Вот эта ссылка: https://github.com/roboguice/roboguice/issues/288#issuecomment-69770596

Протестировано и проверено, что оно работает.

+0

В качестве дополнительного комментария, что меня смутило, было то, что у меня был один компонент, который фактически имел методы '@ Observes', зарегистрированные в глобальном диспетчере событий, а другой - нет. В конечном итоге оказалось, что он работает, но вы должны настроить компонент как одноэлементный EAGER. –

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