RxJava2&房间:停止在删除时发出事件

时间:2018-01-08 13:06:36

标签: android rx-java2 android-room

我有这个数据库

interface UserDao {

    @Insert(onConflict = REPLACE)
    fun insert(user : User)

    @Query("SELECT * FROM user")
    fun get(): Flowable<List<User>>

    @Query("DELETE FROM user")
    fun deleteAll()
}

每次插入记录时,都会按预期自动触发get()

override fun getUsers() : Flowable<User> {

    return db.userDao().get()
}

如何在调用deleteAll()时阻止这种情况发生?

1 个答案:

答案 0 :(得分:0)

您可以使用Single代替Flowable。其次,您可以在订阅者的onNext()方法中使用标志。第一次运行后关闭标志。即使被触发,onNext()中的核心代码也不会发生任何变化。