为什么定义 Flowable 我可以接收数据库的更新

Why defining Flowable I could receive updates of the DB

 @Query("SELECT * FROM userdata")
 Flowable<List<UserData>> allUserDatas();

@Insert(onConflict = OnConflictStrategy.REPLACE)
List<Long> insert(List<UserData> datas);


userDao.allUserDatas()
take(1).
filter(....)
    .subscribeOn(io())
    .observeOn(mainThread())
    .subscribe(userDatas -> Log.i("TAG",""+userDatas));

我在 onAttach() 的同一个片段中添加了带订阅的获取,但是在数据库更新后它没有调用从数据库获取的订阅,为什么

看来您必须将 Flowable allUserDatas() 添加到 CompositeDisposable 的实例中,然后您的订阅才会有效,直到您在 CompositeDisposable 上调用 clear。

我发现了问题。

这是因为 take(1),因为它完成了,这就是为什么我无法听到变化。删除 take(1) 解决了这个问题。