我正在使用匕首2並讓它工作,但我現在需要訪問Android應用程序上下文。匕首2注入Android上下文
它不清楚如何注入並獲得訪問上下文。我試圖做到這一點,如下所示:
@Module
public class MainActivityModule {
private final Context context;
MainActivityModule(Context context) {
this.context = context;
}
@Provides @Singleton
Context provideContext() {
return context;
}
然而這會導致以下異常:
了java.lang.RuntimeException:無法創建應用程序:java.lang.IllegalStateException:mainActivityModule必須設置
如果我檢查匕首生成的代碼此異常這裏提出:
public Graph build() {
if (mainActivityModule == null) {
throw new IllegalStateException("mainActivityModule must be set");
}
return new DaggerGraph(this);
}
我不確定這是否是正確的方式獲取上下文注入 - 任何幫助將不勝感激。
我不知道,如果注射應用的上下文說得通。您可以擴展Application類並創建該應用程序的靜態實例。你可以命名它,例如'BaseApplication'。之後,您可以在擴展的Application類中創建'get()'方法,該方法將返回該實例並同時成爲Application Context。然後,您可以使用以下構造從項目中的任何位置訪問應用程序上下文:'BaseApplication.get()'。您應該謹慎使用,並且只在必要時使用。 –