与rxjava一起使用房间的麻烦

时间:2019-04-09 18:21:48

标签: android rx-java2 android-room

我是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);

}

那么上述代码之间有什么区别?哪种方法更好?

1 个答案:

答案 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);

    }
}