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 № 1Dlaczego 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.