2017-10-27 1 views
0

1つのアクティビティごとに各スコープを作成する必要がありますか?フラグメントのすべてのアクティビティにデフォルトスコープしか定義できないのですか?ダガー2各アクティビティのカスタムスコープ

+0

あなたのニーズによって異なります。あなたのインスタンスはアクティビティ間で共有されるか、すべてのアクティビティはオブジェクトの独自のインスタンスを持たなければなりません – Fakher

答えて

0

あなたは簡単に複数の兄弟の活動コンポーネントに適用さ@ActivityScopeまたは@ActivityScopedオブジェクトを持つことができ、そしてそれはあなたが期待するように動作します:限り、あなたはアクティビティインスタンスごとに1つの新しいサブコンポーネントを作成すると、その後、それぞれが@ActivityScopeバインディングにアクセスする必要がありますそのそれぞれのコンポーネントに住むことになります。もちろん

@ApplicationScope @Component(/* ... */) 
interface ApplicationComponent { 
    FooActivitySubcomponent createFoo(); 
    BarActivitySubcomponent createBar(); 
    // ... 
} 

@ActivityScope @Subcomponent(/* ... */) 
interface FooActivitySubcomponent { 
    void inject(FooActivity activity); 
    // ... 
} 

@ActivityScope @Subcomponent(/* ... */) 
interface BarActivitySubcomponent { 
    void inject(BarActivity activity); 
    // ... 
} 

Module.subcomponentsは生産のサブコンポーネントを指定するための良い方法で、そしてもちろんdagger.androidは、このような構造を作成するための自動的な方法です。

関連する問題