如何观察字符串值的周期性变化?

问题描述 投票:0回答:1

我们有一个字符串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);
}
android rx-java2 system.reactive
1个回答
0
投票

尝试使用RxJava的delay运算符

getSomeString()
    .delay(1, TimeUnit.SECONDS)
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .distinctUntilChanged()
    .subscribeWith(disposableObserver);
© www.soinside.com 2019 - 2024. All rights reserved.