当前位置: 代码迷 >> Android >> 匕首2 +事件总线
  详细解决方案

匕首2 +事件总线

热度:59   发布时间:2023-08-04 10:06:41.0

我想使用otto事件总线将数据从活动发送到我的片段

根据我的活动:

@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)

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

由于我猜您的SubComponent是AppComponent的子组件,因此它继承了它提供的所有项。

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

这意味着,您只需要踢出前2行,而您只需要创建SubComponent。

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

实际上就足够了。

  相关解决方案