机器人和静态变量注入



我是第一次在项目中使用 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()后进行注射,除非您强制这样做。

最新更新