我是RxJava的新手,我想知道将RxJava与android room集成的最佳方法是什么。 我已经看到了两种方法:
1。
@Dao
interface UserDao{
@Insert
void insert(User user);
}
class Repository {
public Completable <Boolean> insertUser(final User user) {
return Completable.fromCallable(new Callable<Boolean>() {
@Override
public Boolean call() throws Exception {
mAppDatabase.userDao().insert(user);
return true;
}
});
}
}
2。
@Dao
interface UserDao{
@Insert
Completable insert(User user);
}
那么上述代码之间有什么区别?哪种方法更好?
答案 0 :(得分:1)
Room支持RxJava2。您可能需要添加依赖性android.arch.persistence.room:rxjava2:$version
。
此外,从2.1.0-alpha01室开始,以@ Insert,@ Delete或@Update注释的DAO方法支持Rx返回类型Completable。
我建议您阅读以下文章,在其中可以找到详细说明-Room RxJava。
因此,您的DAO将如下所示,并且无需在存储库中转换为rx类型:
@Dao
interface UserDao{
@Insert
Completable insert(User user);
}
}