RxAndroid阻止我的UI

时间:2018-08-15 05:24:10

标签: android rx-java2 rx-android android-room android-jetpack

我是RxAndroid的新手,并尝试使用Room数据库进行相同的操作。但是问题是,当将数据插入数据库时​​,我显示的进度条会被阻塞并且缓慢。我为该项目推荐了this blog

public void insertBillPayments(final CallBackParams params,
                               BillPaymentsOffline... payments) {
    Completable.fromAction(() -> db.daoAccess().insertBillPayments(payments))
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.io())
            .subscribe(new CompletableObserver() {
                @Override
                public void onSubscribe(Disposable d) {

                }

                @Override
                public void onComplete() {
                    params.getCallback().onOrderAdded(params);
                }

                @Override
                public void onError(Throwable e) {
                    params.getCallback().onDataNotAvailable(params);
                }
            });
}

如果我做错了什么,请纠正我。

1 个答案:

答案 0 :(得分:1)

这段代码看起来不错,但是我建议您切换observeOnsubscribeOn的调用以提高清晰度,因为subscribeOn适用于流,observeOn适用于发射值和之后应用的功能。

http://reactivex.io/documentation/operators/observeon.html