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