ApplicationModule
短剣 2 でこれを解決する方法がよくわかりません。この 1 つのモジュールだけを使用するモジュールApplicationContext
がApplicationComponent
あるとします。その上に がActivityModule
あり、ActivityComponent
それは に依存していApplicationComponent
ます。
ActivityComponent
のように構築されています
ApplicationComponent component = ((MyApplication) getApplication()).getComponent();
mComponent = Dagger_ActivityComponent.builder()
.applicationComponent(component)
.activityModule(new ActivityModule(this))
.build();
そして、アクティビティを挿入します。
mComponent.inject(this);
これで、 my 内で宣言されているすべてのものを使用できるようにActivityModule
なりましたが、アクセスすることはできませんApplicationModule
。
では、問題は、それをどのように達成できるかということです。別のコンポーネントに依存するコンポーネントをビルドしても、最初のコンポーネントからモジュールにアクセスできますか?
編集
私は解決策を見つけたと思います.JakeによるDevoxxの話をもう一度見た後、私はそれを見逃す必要がありました.別のコンポーネントモジュールから使用したいものは何でも、そのコンポーネントで提供する必要があります.私は述べなければなりません、そしてそれは利用可能になるでしょう。かなりクール :)ApplicationModule
ApplicationComponent
Context provideContext();