房间和 RX Java
Room and RX Java
我有一个提交数据 sheet 的方法。
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);
没有保存发生Link
根据 RxJava2
文档,不允许通过 rx 链传递 null
。我想,这就是问题的原因。
Completable.fromCallable((Callable<Void>) () -> {
...
return null; // don't do this
})
如果您不想return任何东西,请使用Completable.fromAction()
我有一个提交数据 sheet 的方法。
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);
没有保存发生Link
根据 RxJava2
文档,不允许通过 rx 链传递 null
。我想,这就是问题的原因。
Completable.fromCallable((Callable<Void>) () -> {
...
return null; // don't do this
})
如果您不想return任何东西,请使用Completable.fromAction()