私は複数のアクティビティを持ち、すべてのアクティビティに別々のDagger2コンポーネントが含まれているとします。従ってFooActivity
はFooComponent
となり、BarActivity
はBarComponent
となります。また、私はいくつかのビューグループを持って、BazViewGroup
を両方のアクティビティで使用でき、ダガーグラフを介していくつかの依存関係を受け取らなければならないとしましょう。このビューグループのインスタンスに依存関係を注入する最も良い方法は、そのアクティビティがどのアクティビティに属しているかを事前に把握していないからです。異なるDagger2コンポーネントから同じクラスに注入する方法は?
- すべての活動は、この活動
すべてのコンポーネントに含まれる成分を返すメソッド
getComponent()
公開するインターフェイスのようなpublic interface CanInjectIntoBazViewGroup { void inject(BazViewGroup viewgroup); }
インサイドBazViewGroupのconstuctorを拡張:
は今、私は次のセットアップを持っています私はアクティビティへの参照を取得し、コンポーネントを取得して
CanInjectIntoBazViewGroup
にキャストし、inject
メソッドを呼び出します。
これを行うより良い方法はありますか?