我有一个列表要刷新每分钟。 例如,用户列表在这里:https://github.com/android10/Android-CleanArchitecture/blob/master/domain/src/main/java/com/fernandocejas/android10/sample/domain/interactor/GetUserList.javaRxJava轮询+手动刷新
我添加使用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);
}
});
}
它工作正常,这样一来,调用onNext每一分钟。 但是,如果我想立即刷新此列表(因为用户的行为或通知),我不知道如何执行该操作。
我应该取消/处置observable并重新启动一个新的? 感谢
使用interval和mergeWith似乎很有趣,谢谢。我如何手动触发“刷新”(而不是使用RxView)? –
您可以使用主题,只需从程序中的任何位置调用它的'onNext'即可。 –