你好,我想问一下关于rxjava和room的事。
这是我房间的刀:

@Query("SELECT * from `Order` WHERE id = :ID")
fun findOrderById(ID: Int): Flowable<Order>

下面是调用dao的代码:
 mDB.orderDataDao().findOrderById(orderId)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe {
                    if (it.deliveryStatus == EnumOrder.IN_DELIVERY.name) {
                        mView.orderInProgress()
                        mView.setOrderFromDB(it, true)
                    } else {
                        mView.noOrderInProgress()
                        mView.setOrderFromDB(it, false)
                    }
                }

我的问题是,为什么在调用dao时会得到警告“subscribe的结果没有在rxjava上使用”。为什么会发生这种事,我怎样才能纠正?我在每个使用rxjava的代码中都得到了警告。

最佳答案

subscribe()应该返回一个Disposable,您可以使用它在以后注销接收来自Flowable的更新的兴趣。若要删除此警告,请将从订阅返回的可弃文件存储在实例变量中,并将其与生命周期一起用于取消订阅更新。例如。:

val disposable = mDB.orderDataDao().findOrderById(orderId).subscribe { /**/ }

//...

disposable.dispose();

07-24 09:49
查看更多