为什么定义 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)
解决了这个问题。
@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)
解决了这个问题。