Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 匕首2+;事件总线_Android_Dagger 2_Otto - Fatal编程技术网

Android 匕首2+;事件总线

Android 匕首2+;事件总线,android,dagger-2,otto,Android,Dagger 2,Otto,我想使用otto事件总线将数据从活动发送到我的片段 从我的活动中: @Produce public EventAvailableEvent produceEvent() { return new EventAvailableEvent(mEvent); } 要分割: @Subscribe public void onProvideEvent(EventAvailableEvent event) { mEvent = event.getEvent(); } 我在用匕首2注射巴士

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

我正在寻找更好的方法,谢谢,因为我猜您的子组件是AppComponent的子组件,它继承了它提供的所有项

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

这意味着,您可以只踢出前两行,只需创建子组件

App.from(getActivity()).getComponent().plus(new MyModule(mEvent)).inject(this);
mBus.register(this);
那就足够了