2014-12-23 36 views
2

我在Android應用程序中使用RoboGuice 3.0.1以及RoboBlender。 我想有一個全球性的事件管理器,發現RG3.0已經擁有了在這裏提到: https://github.com/roboguice/roboguice/issues/150Global Event Manager Roboguice

我已經加入

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

到我的自定義模塊類的內部配置()。

我有一個單一的WebUtil.class執行一個Web API請求。一旦API請求完成,我想利用全局事件管理器發送事件。 我一直在使用注射eventmanager進行:

eventManager.fire(new MyAPIEvent()); 

我在我的Activity類的觀測方法:

@Inject EventManager eventManager; 

活動使用送出

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

但我不看到正在調用的handleAPICallback()。 我在網上搜索並找不到GlobalEventManager的單個示例。

任何幫助將不勝感激。

+0

您的活動在事件發生的時刻處於前臺嗎? – naXa

+0

是的。活動在前臺。 – Vijay

+0

如果您可以在RG3.0中提供全局事件管理器的示例,那麼對於我們中的很多人來說,這將非常有幫助。 – Vijay

回答

1

我通過發佈在RG的github頁面解決了這個問題。 這裏是鏈接: https://github.com/roboguice/roboguice/issues/288#issuecomment-69770596

經過測試和驗證,它的工作原理。

+0

作爲一個額外的評論,我對此感到困惑的是,我有一個組件,事實上,它有'@ Observes'方法向全局事件管理器註冊,另一個組件不是。最終,事實證明,它工作,但你必須配置組件作爲一個EAGER單身人士。 –