【发布时间】:2018-09-23 23:29:54
【问题描述】:
我正在使用 rxjava 和 Room 来尝试更新 db 中的行列表。 陷入事件不断触发的循环中
道
@Query("SELECT * FROM movies")
Flowable<List<Movie>> getMovies();
@Update
int updateMovie(Movie movie);
UpdateClass - 帮助类正在像这样更新 Db
// Trying to get all existing movies and update one value in all of them.
@WorkerThread
Flowable<Integer> updateMovies(Helper help) {
return movieDao.getMovies().flatMapIterable(movies -> movies)
.flatMap(movie -> {
LogUtils.debug("movieusecase", "movieid" + movie.getMovieId());
movie.updateRating(help.getUpdatedVal(movie));
return Flowable.just(movie);
}).map(movie -> {
return movieDao.updateMovie(movie);
});
}
一旦我加入updateMovie 调用,我就会陷入无限循环,重复事件不断来自房间数据库。
Presenter Class - 调用更新类来更新数据库中的内容。在活动onCreate中触发
updateClass.updateMovies()
.observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(movie -> {
// update stuff
}, throwable -> {
LogUtils.error(TAG, throwable.getMessage());
});
在此先感谢您的任何帮助。
【问题讨论】:
标签: java rx-java rx-java2 android-room