RxJava2 可观察问题
RxJava2 Observable Issue
我是 RXJava2 的新手,所以需要一些帮助,我必须实现收藏夹的功能,当用户点击收藏夹时,它会被插入到 greendo 数据库中,当他不喜欢同一事件时,它就会从 greendo 中删除数据库。
我可以插入和获取结果,但不知道如何删除它。
下面代码中的这一行 return让我无效 mDaoSession.getFavouriteDao().deleteByKey(favourite.getId());
它说的是不兼容的类型然后我如何使 observable 与 void return 类型兼容。
@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);
}
});
}
@Delete
/ @Insert
/ @Update
他们都需要 Collection of Entity
或 Entity
本身.
你必须直接传递 favourite
对象而不是 favourite.getId()
并且还安排了一个函数 void
作为 return 类型使用 Completable
而不是 Observable / Flowable
。
您可以使用 Completable.fromAction 而不是 Observable。
public Completable deleteFavouriteEvent(Favourite favourite) {
return Completable.fromAction(new Action() {
@Override
public void run() throws Exception {
mDaoSession.getFavouriteDao().deleteByKey(favourite.getId());;
}
});
}
我是 RXJava2 的新手,所以需要一些帮助,我必须实现收藏夹的功能,当用户点击收藏夹时,它会被插入到 greendo 数据库中,当他不喜欢同一事件时,它就会从 greendo 中删除数据库。
我可以插入和获取结果,但不知道如何删除它。
下面代码中的这一行 return让我无效 mDaoSession.getFavouriteDao().deleteByKey(favourite.getId());
它说的是不兼容的类型然后我如何使 observable 与 void return 类型兼容。
@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);
}
});
}
@Delete
/ @Insert
/ @Update
他们都需要 Collection of Entity
或 Entity
本身.
你必须直接传递 favourite
对象而不是 favourite.getId()
并且还安排了一个函数 void
作为 return 类型使用 Completable
而不是 Observable / Flowable
。
您可以使用 Completable.fromAction 而不是 Observable。
public Completable deleteFavouriteEvent(Favourite favourite) {
return Completable.fromAction(new Action() {
@Override
public void run() throws Exception {
mDaoSession.getFavouriteDao().deleteByKey(favourite.getId());;
}
});
}