3 回答
TA贡献1859条经验 获得超6个赞
创建一个 Observable 并在其中编写您的逻辑。您可以订阅可观察对象并获取布尔值。
public Observable<Boolean> insertObject(Measurements m) {
return Observable.create(new ObservableOnSubscribe<Boolean>() {
@Override
public void subscribe(ObservableEmitter<Boolean> e) {
appDb.measurementDAO().insertMeasurements(m);
e.onNext(true);
e.onComplete();
}
}).subscribeOn(Schedulers.io());
}
TA贡献1865条经验 获得超7个赞
我知道你有答案,但你永远不知道这是否失败。我确定您的 dao 插入方法可以返回一个long[](插入行的 ID)。
你可以轻松地做到:
Completable.fromCallable(() ->
appDb.measurementDAO().insertMeasurements(m).length != 0 ?
Completable.complete() :
Completable.error(new IllegalStateException("Error inserting " + m.toString())))
.subscribeOn(Schedulers.io())
.subscribe(() -> { }, Throwable::printStackTrace);
TA贡献1847条经验 获得超11个赞
我找到了我丢失的部分:
Completable.fromAction(() -> appDb.measurementDAO().insertMeasurements(m)) .subscribeOn(Schedulers.io()) .subscribe();
添加回答
举报