以下代碼創建&股噴射的依賴(ViewsApiEnd
)具有不同活性的相同對象,而不是創建每個活動不同。dagger2 activityscope提供注入依賴性相同的對象具有不同活性
@ActivityScope
@Component(dependencies = HttpComponent.class, modules = ViewsApiModule.class)
public interface ViewsApiComponent {
void inject(MainActivity activity);
void inject(SecondActivity activity2);
}
模塊:
@Module
public class ViewsApiModule {
@Provides
@ActivityScope
public ViewsApiEnd providesGitHubInterface(Retrofit retrofit) {
return retrofit.create(ViewsApiEnd.class);
}
}
範圍:
@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface ActivityScope{
}
全部來源:Github(如果任何人都可以用叉子叉&正確範圍issue這將是有幫助的也checke void logInstances()
驗證對象。創作)
如果我想讓dagger2爲不同的活動(MainActivity
,SecondActivity
)創建不同的注入的對象(ViewsApiEnd
),我該如何聲明ViewsApiComponent
?
感謝您的幫助,但我覺得'@Overrides 公共無效的onDestroy(){ super.onDestroy(); mViewsApiComponent = NULL; }'是後備選項。 – AskQ
你是什麼意思?你爲什麼這樣想? – Fred
它解決了問題,所以我upvoted ..但讓我得到這個問題我張貼在dagger2 GitHub上的響應。 – AskQ