大家好,现在我对RXJava中的线程有一个问题。我想通过rxjava设置可见,但是android会抛出一个异常。
"ViewRootImpl$CalledFromWrongThreadException“
Disposable disposable = Single.concat(
getClearStorageObservable()
.doOnError(Timber::e)
.onErrorResumeNext(Single.just(false)),
getDownloadObservable())
.subscribeOn(schedulers().io())
.observeOn(schedulers().ui())
.delay(DELAY_VALUE,TimeUnit.SECONDS)
.timeout(5, TimeUnit.SECONDS)
.subscribe(status -> hideErrorInformation(),
error -> showErrorInformation()
);
disposables().add(disposable);发布于 2020-01-06 08:37:22
您在delay之后应用了observeOn,因此流被从UI线程中切换开。删除observeOn并按以下方式重新排序流:
Disposable disposable = Single.concat(
getClearStorageObservable()
.doOnError(Timber::e)
.onErrorResumeNext(Single.just(false)),
getDownloadObservable())
.subscribeOn(schedulers().io())
.timeout(5, TimeUnit.SECONDS, schedulers().ui())
.delay(DELAY_VALUE, TimeUnit.SECONDS, schedulers().ui())
.subscribe(status -> hideErrorInformation(),
error -> showErrorInformation()
);
disposables().add(disposable);https://stackoverflow.com/questions/59584675
复制相似问题