私はフラグメントとプレゼンターにシングルトンを注入するApplicationComponentを持っていますが、AppComponentと同じプレゼンターに注入するコンポーネントを作成しようとしていますそうです。これらの線に沿って何か。Dagger 2を使用して複数のコンポーネントを同じオブジェクトに挿入する方法
@Component{modules = FileManagerModule.class}
public interface FileManagerComponet
{
public void inject(MyPresenter presenter);
}
@Component{modules = AppModule.class}
public interface AppComponent
{
public void inject(MyPresenter presenter);
}
@Module
public class AppModule
{
private Context appContext;
@Provides
@Singleton
public SharedPreferences preferences()
{
return appContext.sharedPreferences();
}
...
}
@Module
public class FileManagerModule
{
private Context activityContext;
@Provides
public FileManager FileManager()
{
return new FileManager(activityContext);
}
...
}
この質問は、複数回入力する必要があります。コンポーネントはフィールドの_all_を指定する必要があります。そうでないと機能しません。コンポーネントを組み合わせて一致させることはできません。例えばここで確認してください:http://stackoverflow.com/a/38897722/1837367 –
@DavidMedenjak次に、アプリケーションが作成され、アクティビティコンテキストがないときにAppComponentがビルドされている場合、FileManagerModuleにアクティビティコンテキストを与えることはできますか? – Stampede10343