Ali*_*ana 2 android rx-java rx-java2 android-room
您好,我想问一下rxJava和Room。
这是我房间的道:
@Query("SELECT * from `Order` WHERE id = :ID")
fun findOrderById(ID: Int): Flowable<Order>
Run Code Online (Sandbox Code Playgroud)
这是调用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)
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么在调用Dao时会出现警告“ rxjava上未使用subscribe的结果”。为什么会发生这种情况以及我该如何做对?我在使用rxJava的每个代码中都得到了警告。
subscribe()应该会返回Disposable,您可以用来取消注册Flowable以后收到您的更新的兴趣。要删除此警告,请将订阅中返回的Disposable存储在实例变量中,并将其与生命周期一起使用以取消订阅更新。例如:
val disposable = mDB.orderDataDao().findOrderById(orderId).subscribe { /**/ }
//...
disposable.dispose();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1099 次 |
| 最近记录: |