Результат подписки не используется на rxjava - PullRequest
0 голосов
/ 03 мая 2019

Здравствуйте, я хочу спросить о rxJava и Комнате.

вот Дао для моей Комнаты:

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

вот код для вызова Дао:

 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)
                    }
                }

мой вопрос, почему я получил предупреждение "Результат подписки не используется в rxjava" при вызове Dao.почему это происходит и как я могу сделать это правильно?Я получил это предупреждение в каждом коде, использующем rxJava.

Ответы [ 2 ]

1 голос
/ 04 мая 2019

Или создайте CompositeDisposable в своем презентаторе и добавьте туда все одноразовые. А в onDestroy() звоните compositeDisposable.dispose().

1 голос
/ 03 мая 2019

subscribe() должен вернуть Disposable, который вы можете использовать для отмены вашей заинтересованности в получении обновлений от вашего Flowable на более позднем этапе.Чтобы удалить это предупреждение, сохраните Disposable, возвращаемый из подписки, в переменной экземпляра и используйте его с жизненными циклами для отмены подписки на обновления.например:

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

//...

disposable.dispose();
...