はApplicationComponentによって参照されているモジュール内で以下のように定義されたMainActivityため、このインジェクタがあります:複数の注入は
@Module
public class MainActivityModule {
@Provides
@PerActivity
public MyActivityDependency myActivityDependency() {
return new MyActivityDependency();
}
}
とMainActivity自体である:
@PerActivityスコープは、アクティビティのライフサイクル全体にわたってアクティビティの依存関係インスタンスを保持することになっています。
これは基本的に私は(AndroidInjection.inject(本))を複数回噴射を行う場合、私は(少なくともそれが目標です)同じ注入されたインスタンスを取得する権利を有することを意味しています。
この場合、 ".inject()"メソッドが呼び出されるたびにMyDependencyの異なるインスタンスが挿入されるのはなぜですか?
インスタンスは各スコープのために適切にキャッシュされることを保証することよりも複数回、他のそれを呼び出すための具体的な理由はありません。 は実際には、古い短剣のアプローチでは、人はそのことを確認するために、このような健全性チェック(または自動化されたテスト)を行うことができます。 また、不慮のミスは、アプリケーションの動作を中断しないことを確実にするでしょう。 – Mahorad
@Mahoradあなたがいることをするだろう、なぜ私は表示されませんが、私は感謝ダビデは、あなたがDoubleInjectActivityComponentの定義方法にもう少し詳しく説明してApplicationComponentおよび/またはの残りの部分にそれをのりでし答え –
にあなたのための選択肢を追加しましたDI構造ですか? – Mahorad