我是第一次在项目中使用 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 的学习练习。只有当你对给出的问题有答案时,才回答,而不是"你为什么要这样做"。
为什么要使用 static
方法/变量?这不是正确的方法。你应该@Inject MyObject
MyActivity
.然后你可以做myObjectInstance.print();
.请注意,RoboGuice 会在setContentView()
后进行注射,除非您强制这样做。