2017-10-27 9 views
0

모든 단일 활동에 대해 각 범위를 만들어야합니까? 조각에 대한 모든 활동에 대한 기본 범위 만 정의 할 수 있습니까?단검 2 각 활동에 대한 사용자 정의 범위

+0

귀하의 필요에 따라 다릅니다. 인스턴스가 액티비티간에 공유되거나 모든 액티비티에는 객체의 고유 한 인스턴스가 있어야합니다. – Fakher

답변

0

당신은 쉽게 @ActivityScope 또는 @ActivityScoped 개체가 여러 형제 자매 활동 구성 요소에 적용 할 수 있습니다, 그것은 당신이 예상 한대로 작동합니다 :만큼 당신이 활동 인스턴스 당 정확히 하나 개의 새로운 하위 구성 요소를 만들 때, 다음 각 @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이 같은 구조를 만들 수있는 자동 방법입니다.