RxJava2 可观察问题



我是RXJava2的新手,所以需要一些帮助,我必须实现收藏夹的功能,当用户点击收藏夹时,它会插入到greendo数据库中,当他取消收藏相同的事件时,它会从greendo数据库中删除。

我能够插入并获取结果,但不知道如何删除它。

下面代码中的这一行返回我无效mDaoSession.getFavouriteDao().deleteByKey(favourite.getId());

它说不兼容的类型,然后我如何使可观察的与 void 返回类型兼容。

@Override
public Observable<Long> deleteFavouriteEvent(Favourite favourite) {
return Observable.fromCallable(new Callable<Long>() {
@Override
public Long call() throws Exception {
return mDaoSession.getFavouriteDao().deleteByKey(favourite.getId());
}
});
}

插入工作正常:

@Override
public Observable<Long> insertFavouriteEvent(Favourite favourite) {
return Observable.fromCallable(new Callable<Long>() {
@Override
public Long call() throws Exception {
return mDaoSession.getFavouriteDao().insert(favourite);
}
});
}

您可以使用Completable.fromAction而不是Observable。

public Completable deleteFavouriteEvent(Favourite favourite) {
return Completable.fromAction(new Action() {
@Override
public void run() throws Exception {
mDaoSession.getFavouriteDao().deleteByKey(favourite.getId());;
}
});
}
@Delete

/@Insert/@Update所有这些都需要Collection of EntityEntity本身

您必须直接传递对象favourite而不是favourite.getId()

并且还调度一个以void作为返回类型的函数使用Completable而不是Observable / Flowable.

相关内容

  • 没有找到相关文章

最新更新