会议室和RX Java

时间:2018-11-19 09:44:21

标签: rx-java2 android-room

我有一种提交数据表的方法。

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);
    }

我需要将它们保存到数据库中。我在Room工作。有办法     

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

没有保存Link

1 个答案:

答案 0 :(得分:0)

根据RxJava2文档,不允许将null通过rx链传递。我想,这就是问题的原因。

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

如果您不想返回任何内容,请使用Completable.fromAction()