Ich habe eine Liste, die jede Minute aktualisiert werden soll. Zum Beispiel die Benutzerliste hier: https://github.com/android10/Android-CleanArchitecture/blob/master/domain/src/main/java/com/fernandocejas/android10/sample/domain/interactor/GetUserList.javaRxJava Polling + manuelle Aktualisierung
füge ich eine periodische Auffrischung mit repeatWhen:
public Observable<List<User>> buildUseCaseObservable(Void unused) {
return this.userRepository
.users()
.repeatWhen(new Function<Observable<Object>, ObservableSource<?>>() {
@Override
public ObservableSource<?> apply(Observable<Object> objectObservable) throws Exception {
return objectObservable.delay(1, TimeUnit.MINUTES);
}
});
}
Es funktioniert auf diese Weise, jede Minute OnNext aufrufen. Aber wenn ich diese Liste sofort aktualisieren möchte (wegen der Aktion des Benutzers oder wegen einer Benachrichtigung), weiß ich nicht, wie ich das ausführen soll.
Sollte ich das Observable abbrechen/entsorgen und einen neuen starten? Dank
Mit Intervall und mergeWith scheint interessant zu sein, danke. Wie kann ich manuell eine "Aktualisierung" auslösen (anstatt RxView zu verwenden)? –
Sie könnten ein Thema verwenden und rufen Sie einfach seine 'onNext' von wo auch immer Sie in dem Programm möchten. –