我们应该为 Rxjava3 使用哪个 rxjava3 改造适配器

Che*_*tan 23 android rx-java retrofit rx-java2

我正在使用 RxJava3 和改造,但我无法获得 RxJava3 的 rxjava3 改造适配器。

dev*_*evz 47

现在有一个 2.9.0 版的官方 Retrofit 实现:

只需使用您创建 Retrofit 客户端的适配器:

val rxAdapter = RxJava3CallAdapterFactory.create()
retrofit = Retrofit.Builder().baseUrl(baseUrl)
            .addConverterFactory(MoshiConverterFactory.create(moshi))
            .client(httpClient)
            .addCallAdapterFactory(rxAdapter).build()
Run Code Online (Sandbox Code Playgroud)

并将 RxAdapter 依赖项包含在您的build.gradle:

implementation 'com.squareup.retrofit2:adapter-rxjava3:2.9.0'
Run Code Online (Sandbox Code Playgroud)

https://github.com/square/retrofit/blob/master/CHANGELOG.md#version-290-2020-05-20

同样来自文档:

与 RxJava 1 和 RxJava 2 适配器不同,RxJava 3 适配器的 create() 方法默认会产生异步 HTTP 请求。对于同步请求使用 createSynchronous() 和在调度器上同步使用 createWithScheduler(..)

  • 唯一的版本让我感觉不舒服...... (2认同)

Vla*_*kov 5

使用RxJavaRetrofitAdapter由库@akarnokd

implementation "com.github.akarnokd:rxjava3-retrofit-adapter:3.0.0"