我在项目中第一次使用RoboGuice并尝试注入一个静态变量,但变量保持为null。这是我正在测试的一些快速模型:
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");
}
}
}
我该如何做到这一点?
READ
我知道这不是最佳做法 - 在使用RoboGuice方面,这更像是一种学习练习。只有在你回答问题时才回答,而不是“你为什么这样做”。
答案 0 :(得分:1)
为什么使用static
方法/变量?这不是正确的方法。您应该@Inject MyObject
进入MyActivity
。然后你可以做myObjectInstance.print();
。请注意,RoboGuice会在setContentView()
之后执行注射,除非你强制它。