我在Android应用程序中将RoboGuice 3.0.1与RoboBlender一起使用。
我想拥有一个全球事件经理,并且注意到RG3.0已经拥有它,如此处所述:
https://github.com/roboguice/roboguice/issues/150
我已经添加了
bind(EventManager.class).annotatedWith(Names.named(DefaultRoboModule.GLOBAL_EVENT_MANAGER_NAME)).to(EventManager.class).asEagerSingleton();
到configure()中我的自定义模块类。
我有一个执行Web API请求的单例WebUtil.class。我想在API请求完成后利用全局事件管理器发送事件。
我使用以下方法注入了eventManager:
@Inject EventManager eventManager;
使用以下命令发送事件:
eventManager.fire(new MyAPIEvent());
我的Activity类中有一个Observer方法:
handleAPICallback(@Observes MyAPIEvent apiEvent) {
// do something with apiEvent object
}
但是我看不到handleAPICallback()被调用。
我在网上搜索,找不到GlobalEventManager的单个示例。
任何帮助将不胜感激。
最佳答案
我通过在RG的github页面上发布解决了这个问题。
链接在这里:
https://github.com/roboguice/roboguice/issues/288#issuecomment-69770596
测试并验证它是否有效。