我想使用otto event bus
将活动中的数据发送到我的片段从我的活动:
@Produce
public EventAvailableEvent produceEvent() {
return new EventAvailableEvent(mEvent);
}
片段化:
@Subscribe
public void onProvideEvent(EventAvailableEvent event) {
mEvent = event.getEvent();
}
我正在使用匕首2来注入总线
@Inject Bus mBus;
private void injectDepedencies() {
App.from(getActivity()).getComponent().plus(new MyModule(mEvent));
}
我的模块依赖于事件总线返回的事件。
现在,我要做的是首先注入主要组件,注册总线,然后注入子组件
AppComponent appComponent = App.from(getActivity()).getComponent();
appComponent.inject(this)
mBus.register(this)
SubComponent subComponent = appComponent.plus(new MyModule(mEvent));
subComponent.inject(this)
我正在寻找更好的方法,谢谢
答案 0 :(得分:0)
因为我猜你的SubComponent是AppComponent的一个子组件,所以它继承了它提供的所有项目。 Described here
该关系允许子组件实现在声明时从其父组件继承整个绑定图。
这意味着,您只需踢出前两行就可以创建SubComponent。
App.from(getActivity()).getComponent().plus(new MyModule(mEvent)).inject(this);
mBus.register(this);
实际上已经足够了。