Um RxAndroid besser zu verstehen, fand ich this Repo, die voll von nützlichen Beispielen mit RxAndroid ist, vor allem in Kombination mit Retrofit.RxAndroid http Anfrage im Hintergrund mit Retrofit
Also, wenn ich mir this Teil des Repos anschaue, kann ich einen http-Aufruf machen, indem ich auf eine Schaltfläche klicke, die im Hintergrund zu laufen scheint, oder?
Was ist, wenn ich diese App habe, die eine Aktivität/Fragment zeigen und gleichzeitig einen http-Aufruf auf dem Hintergrund und zeigen Sie die Daten, wenn es irgendwelche erhalten?
So zum Beispiel habe ich dieses Fragment mit onStart
@Override
public void onStart() {
super.onStart();
pomagistoService
.getAgenda()
.subscribeOn(Schedulers.newThread()) // <- run in background right?
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<Appointment>>() {
@Override
public void onCompleted() { }
@Override
public void onError(Throwable e) { }
@Override
public void onNext(List<Appointment> appointments) {
// show data in ListView
}
});
}
Wenn ich dieses Fragment ein Listview sofort enthält die Daten beginnen, die durch den HTTP-Aufruf empfangen wird.
Jetzt ist die Frage/Verwunderung, die ich habe: Führt dieser HTTP-Aufruf im Hintergrund?
Ich frage dies wegen der Daten, die sofort da sind, wenn das Fragment erscheint, also kann ich es nicht wirklich beobachten.
ja der HTTP-Aufruf im Hintergrund ausgeführt –
@AmitShekhar oke, also sagen wir, der http-Aufruf dauert 5 Sekunden, dauert es nicht 5 Sekunden für das Fragment zu erscheinen? Das Fragment erscheint nur (ohne Daten)? –
Sie sollten die Fragmentliste von der onNext aktualisieren() –