/ / RoboGuice i iniekcje zmiennych statycznych - android, wstrzykiwanie zależności, guice, roboguice

RoboGuice i zmienna statyczna Injection - android, zastrzyk zależności, guice, roboguice

Korzystam z RoboGuice po raz pierwszy w projekcie i próbuję wstrzyknąć zmienną statyczną, ale zmienna pozostaje pusta. Oto szybki przykład czegoś, co testuję:

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");
}
}
}

Jak mogę to sprawić?

CZYTAĆ

Wiem, że nie jest to najlepsza praktyka - jest to raczej ćwiczenie edukacyjne w zakresie korzystania z RoboGuice. Odpowiedz tylko wtedy, gdy masz odpowiedź na zadane pytanie, a nie „Dlaczego to robisz”.

Odpowiedzi:

1 dla odpowiedzi № 1

Dlaczego używasz static metoda / zmienne? To nie jest właściwy sposób, aby to zrobić. Powinieneś @Inject MyObject w MyActivity. To możesz zrobić myObjectInstance.print();. Należy pamiętać, że RoboGuice wykonuje zastrzyk po setContentView() chyba że go zmusisz.