Reputation: 7966
I'm new with rxjava
.
implementation "io.reactivex.rxjava2:rxjava:2.2.8"
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
I'm working with interval()
,
I don't know how to show View in onComplete()
of rxjava without block UI Thread.
Or call onComplete()
from onNext()
in below codes :
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();
});
People who know,
Please tell me,
Thank you,
Upvotes: 0
Views: 281
Reputation: 1129
Following code may work.
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();
}
});
Upvotes: 1