Ich versuche, Daten, die vom Retrofit-Service empfangen werden, in eine Singleton-Klasse zu mappen. Es scheint, weil getInstance()
statische Methode nicht aufgerufen wird, wenn Retrofit JSON auf mein Objekt mappt, INSTANCE Variable ist nicht initialisiert und das nächste Mal, wenn ich MyClass.getInstance()
aufrufen bekomme ich Objekt mit Standardwerten und nicht, was ich von Retrofit erhalten. Wie gehe ich vor, um Daten aus dem Retrofit in die Singleton-Klasse zu speichern.Nachrüsten von JSON-Zuordnung zu Singleton-Klasse
P.S. Ich brauche das, weil ich das gleiche Objekt verwenden muss, das ich im ersten Fragment-Modell erhalten habe, im zweiten Fragment in ViewPager.
Meine Singletonklasse:
public final MySingletonClass {
//pirivate final fields;
private MySingletonClass() {
//default initialization fields
}
public static MySingletonClass getInstance() {
return MySingletonClassSingletonHelper.INSTANCE;
}
private static class MySingletonClassSingletonHelper {
private static final MySingletonClass INSTANCE = new MySingletonClass();
}
//getters
}
OK, wenn jemand wissen müssen, wie ich Nachrüstung verwenden:
@Override
public Observable<MySingletonClass> loadData(Integer params) {
return mRetrofitInterface.getMySingletonClass(params).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
public interface MySingletonClassService {
@POST("some address")
Observable<MySingletonClass> getMySingletonClass(@Path("idd") Integer idd);
}
Wollen Sie Ihre Daten über mehrere Läufe Ihrer Anwendung anhalten oder über nur einen Lauf? – Sac
Nur einzelne Ausführung. Bis zur nächsten Anfrage an die gleiche Adresse (Refresh). – Sermilion