2
我在一個項目中第一次使用RoboGuice,並試圖注入一個靜態變量,但變量保持爲空。以下是我正在測試的某個快速模型:RoboGuice和靜態變量注入
public class MyActivity extends RoboFragmentActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
MyObject.print();
}
}
@ContextSingleton
public class MyObject {
@Inject static AssetManager sAssetManager;
public static void print() {
if(sAssetManager == null) {
Log.d("debug", "AssestManager is null");
} else {
Log.d("debug", "AssetManager was injected");
}
}
}
我該如何做這項工作?
閱讀
我知道這是不是最好的做法 - 這是使用RoboGuice方面更多的是學習的過程。只有在回答問題的答案時纔回答,而不是「你爲什麼這樣做」。
有一種感覺,這種類型的答案即將到來。我通常不會這樣做。我需要這個的原因很難解釋,這只是一個愚蠢的例子,以及學習RoboGuice的經驗。顯然我知道我通常不會這樣做。只是尋找這個問題的答案 - 不是最佳做法。 – jjNford
我認爲在我們通常認爲最糟糕的。無論如何,我相信你仍然需要首先注入'MyObject',這樣才能注入字段。你嘗試過嗎? – dmon
是的 - 所以我只想在這種情況下注入AssetManager對象。但由於某種原因,它仍然是空的......不知道是因爲'靜態'關鍵字,還是MyObject找不到上下文的面孔 - 但我認爲AssetManager的Provider僅使用了應用程序上下文。 – jjNford