首页 > 解决方案 > 我们应该为 Rxjava3 使用哪个 rxjava3 改造适配器

问题描述

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

标签: androidretrofitrx-javarx-java2

解决方案


现在有一个 2.9.0 版本的官方改造实现:

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

val rxAdapter = RxJava3CallAdapterFactory.create()
retrofit = Retrofit.Builder().baseUrl(baseUrl)
            .addConverterFactory(MoshiConverterFactory.create(moshi))
            .client(httpClient)
            .addCallAdapterFactory(rxAdapter).build()

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

implementation 'com.squareup.retrofit2:adapter-rxjava3:2.9.0'

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

同样来自文档:

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


推荐阅读