RxJava 2适配器面板

时间:2018-08-13 16:20:14

标签: android rx-java retrofit2 rx-java2 rx-android

RxJava2CallAdapterFactory.create()RxJava2CallAdapterFactory.createWithScheduler(Schedulers.io())有什么区别?应该选择哪一个?

2 个答案:

答案 0 :(得分:0)

如果将Scheduler传递给RxJava2CallAdapterFactory,它将向您发出的每个网络请求中添加subscribeOn(scheduler)。这只是一种方便的方法。

答案 1 :(得分:0)

与源代码的区别

这两个方法都返回同步可观察实例,但是create()方法没有默认运行的调度程序,顾名思义,createWithSchedulers(Scheduler scheduler)默认情况下在相应的调度程序上运行,您已在其中提到方法,根据您的示例,它将为Scheduler.io()

您应该使用哪个?

现在这将取决于您,默认情况下您直接要在Schedulers.io()或其他调度程序中返回实例的API,然后将其与调度程序一起使用,否则可以使用create()方法并且可以每次获取响应时声明调度程序。

注意:我个人使用create()方法,有时会提到其他Schedulers.newThread()和/或Schedulers.computation()