带有 RxJava3 的 Android 房间

ios*_*med 16 observable android-room

有没有办法使用Room数据库RxJava3

当我尝试返回ObservableSingle从 Room返回时Query它显示以下错误的问题:

error: Not sure how to convert a Cursor to this method's return type public abstract io.reactivex.rxjava3.core.Single<java.util.List<com.osama.movieshow.data.movie.Movie>> getAllFavorites();

我的房间查询:

@Query("select * from favorites") fun getAllFavorites():Single<List<Movie>>

Singleimport io.reactivex.rxjava3.core.Single

Ehm*_*ogo 19

Room 现在支持 Rxjava3。使用下面的依赖项;

implementation "androidx.room:room-rxjava3:2.3.0-alpha02"
Run Code Online (Sandbox Code Playgroud)


小智 7

看看 RxJava 桥接库 [ https://github.com/akarnokd/RxJavaBridge#rxjavabridge ] 有了它,你应该能够将 rxjava2 类型转换为 rxjava3 类型。它由 RxJava 的维护者维护。

另一件需要注意的事情是 jetpack 发行说明 alpha 通道 [ https://developer.android.com/jetpack/androidx/versions/alpha-channel?hl=en] 这应该列出管道中的内容。不幸的是,我在任何地方都没有看到 rxjava3 绑定(目前),我不知道 Google 是否计划维护它,但保持警惕并不是一个坏主意。