我们有一个字符串Observable
。如果更改,则它将发出新值,并且数据将不进行任何更新。 Observer
应该每秒观察一次String值。我尝试这样做,但是不起作用:
r = new Runnable() {
@Override
public void run() {
//updateUiElementValue();
getSomeString();
handler.postDelayed(this, 1000);
}
};
handler.postDelayed(r, 1000);
DisposableObserver<String> disposableObserver = new DisposableObserver<String>() {
@Override
public void onNext(String s) {
Log.d("Tag", s);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
Log.d("Tag", "Compelete");
}
};
getSomeString()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.distinctUntilChanged()
.subscribeWith(disposableObserver);
Observable<String> getSomeString() {
return Observable.just(someString);
}
尝试使用RxJava的delay
运算符
getSomeString()
.delay(1, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.distinctUntilChanged()
.subscribeWith(disposableObserver);