Я использую rxjava & Room, где пытаюсь обновить список строк в БД.Застрял в цикле, где события непрерывно запускаются
Dao
@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());
});
Заранее спасибо, любая помощь будет очень признательна.