Комната и RX Java - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть метод, при котором лист данных фиксируется.

private void saveItemsToDB(List<NewsEntity> newsEntityList) {
     Disposable disposable = Completable.fromCallable((Callable<Void>) () -> {
            newsDatabase.getNewsDao().deleteAll();
            Utils.log("******Delete All******");
           
            for (NewsEntity newsEntity : newsEntityList) {
                Utils.log("******Save " + newsEntity + "******");
                newsDatabase.getNewsDao().insert(newsEntity);
            }
            return null;
        })
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe();
        compositeDisposable.add(disposable);
    }

Мне нужно сохранить их в базе данных. Я работаю с комнатой. Есть метод

  @Insert(onConflict = OnConflictStrategy.REPLACE)
  void insertAll(NewsEntity... newsEntities);
  
  @Insert(onConflict = OnConflictStrategy.REPLACE)
  void insert(NewsEntity newsEntity);

Сохранение не происходит Ссылка

1 Ответ

0 голосов
/ 19 ноября 2018

Согласно документации RxJava2, нельзя пропускать null через цепочку rx. Я полагаю, это является причиной проблемы.

Completable.fromCallable((Callable<Void>) () -> {
    ...
    return null; // don't do this
})

Если вы не хотите ничего возвращать, используйте Completable.fromAction()

...