Dagger 2 +活动巴士

时间:2015-10-19 01:14:36

标签: android dagger-2 otto

我想使用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)

我正在寻找更好的方法,谢谢

1 个答案:

答案 0 :(得分:0)

因为我猜你的SubComponent是AppComponent的一个子组件,所以它继承了它提供的所有项目。 Described here

  

该关系允许子组件实现在声明时从其父组件继承整个绑定图。

这意味着,您只需踢出前两行就可以创建SubComponent。

App.from(getActivity()).getComponent().plus(new MyModule(mEvent)).inject(this);
mBus.register(this);

实际上已经足够了。