如何在 rxjava 中调用与 interval() 一起使用的 onComplete()
how to call onComplete() used with interval() in rxjava
我是 rxjava
的新手。
implementation "io.reactivex.rxjava2:rxjava:2.2.8"
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
我正在与 interval()
、
合作
我不知道如何在rxjava的onComplete()
中不阻塞地显示视图UI线程 .
或在下面的代码中从onNext()
调用onComplete()
:
Observable
.interval(0, 5, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> {
Log.d("", "onNext()");
}, Throwable::printStackTrace, () -> {
Log.d("", "onComplete()");
Log.d("", "SHOW POP UP");
showView();
});
认识的人,
请告诉我,
谢谢,
以下代码可能有效。
Observable
.interval(0, 5, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Long>() {
Disposable d;
@Override
public void onSubscribe(@NonNull Disposable d) {
this.d = d;
}
@Override
public void onNext(@NonNull Long aLong) {
if(!d.isDisposed()) {
this.onComplete(); // this will call onComplete()
d.dispose();
}
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete() {
showView();
}
});
我是 rxjava
的新手。
implementation "io.reactivex.rxjava2:rxjava:2.2.8"
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
我正在与 interval()
、
我不知道如何在rxjava的onComplete()
中不阻塞地显示视图UI线程 .
或在下面的代码中从onNext()
调用onComplete()
:
Observable
.interval(0, 5, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(aLong -> {
Log.d("", "onNext()");
}, Throwable::printStackTrace, () -> {
Log.d("", "onComplete()");
Log.d("", "SHOW POP UP");
showView();
});
认识的人,
请告诉我,
谢谢,
以下代码可能有效。
Observable
.interval(0, 5, TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Long>() {
Disposable d;
@Override
public void onSubscribe(@NonNull Disposable d) {
this.d = d;
}
@Override
public void onNext(@NonNull Long aLong) {
if(!d.isDisposed()) {
this.onComplete(); // this will call onComplete()
d.dispose();
}
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete() {
showView();
}
});