2

プロジェクトで初めて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");
      }
  }
}

どうすればこれを機能させることができますか?

読む

これはベストプラクティスではないことを私は知っています-これはRoboGuiceを使用するという点でより学習的な演習です。「なぜこれをしているのか」ではなく、与えられた質問に対する答えがある場合にのみ答えてください。

4

1 に答える 1

1

なぜstaticメソッド/変数を使用しているのですか? これは正しい方法ではありません。に@Inject する必要がありMyObjectますMyActivity。その後、行うことができますmyObjectInstance.print();setContentView()強制しない限り、RoboGuice は後で注入を実行することに注意してください。

于 2012-12-12T20:08:57.343 に答える