Это ошибка, она уже исправлена ​​и будет выпущена с

росто, DAO

@Query("DELETE FROM Things WHERE someIdOfTheThing IN (:listOfId)")
abstract fun deleteThings(listOfId: MutableList<String>): Maybe<Int>

использование,

mDisposables.add(mThingsDao
    .deleteThings(listOfId)
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe({
         ...
     }, {
         ...
     })
)

и ошибка,

// Cannot access database on the main thread since it may potentially lock the UI for a long period of time.

Простая идея, о которой я думал, это указатьsubscribeOn(Schedulers.io()) а затем отдать всю работу магическим рукам Rx, но не удалось.

Так чего же мне не хватает?

После упаковки, как показано ниже и использованияdeleteThingsWrapped, начал работать. Но до сих пор не понимаю, почему первый подход не сработал

open fun deleteThingsWrapped(listOfId: MutableList<String>): Maybe<Int> {
    return Maybe.create(object : MaybeOnSubscribe<Int> {
        override fun subscribe(emitter: MaybeEmitter<Int>) {
            emitter.onSuccess(deleteThings(listOfId))
        }
    })
}

@Query("DELETE FROM Things WHERE someIdOfTheThing IN (:listOfId)")
abstract fun deleteThings(listOfId: MutableList<String>): Maybe<Int>

Ответы на вопрос(2)

Ваш ответ на вопрос