2

我在一个项目中第一次使用 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 的学习练习。仅在您对给出的问题有答案时才回答,而不是“您为什么这样做”。

4

1 回答 1

1

为什么要使用static方法/变量?这不是正确的做法。你应该 @InjectMyObjectMyActivity. 然后你可以做myObjectInstance.print();。请注意,setContentView()除非您强制执行,否则 RoboGuice 会在之后执行注入。

于 2012-12-12T20:08:57.343 回答