我是使用Dagger和DI的新手。我正在嘗試使用AndroidInjection解析器將依賴關係注入到其活動的片段中。Android Dagger在任意時刻設置模塊
一般來說,我瞭解到,在使用Dagger.android的情況下,我必須創建MyAppComponent
並安裝AndroidInjectionModule
才能使用AndroidInjection.inject(Activity/Fragment/etc..)
。通過這種方式,我提供了Subcomponents與Builders的接口,使Dagger能夠生成合適的注入器。
但是,如果我有子組件,即DeviceFragmentSubcomponent與具有參數化構造函數的模塊有依賴關係?
@Subcomponent(modules = {DeviceModule.class})
public interface DevicePageFragmentSubcomponent extends AndroidInjector<DevicePageFragment>{
@Subcomponent.Builder
public abstract class Builder extends AndroidInjector.Builder<DevicePageFragment>{
public abstract Builder setDeviceModule(DeviceModule deviceModule);
}
}
@Module
public class DeviceModule {
private Device mDevice;
public DeviceModule(Device device) {
mDevice = device;
}
@Provides
public Device provideDevice(){
return mDevice;
}
}
應該怎樣做對使用其片段AndroidInjection.inject(this)
內DeviceActivity設置DeviceModule實例?
是否有可能在創建應用程序的依賴關係樹時添加所需的模塊,但對任意事件?
感謝您對dagger.android能力的澄清。我不會試圖這樣去。其實我已經在模塊中創建了封裝對象,並在Activity和Fragments之間共享這個對象。它現在滿足我的需求。是的,有很多選擇使用Dagger,我只是很好奇在創建依賴關係樹之後添加模塊,逐漸地。好的,它看起來就是答案) – atlascoder