我有运行网络调用的波纹管代码行来检索令牌:
service.token(initAuth()).blockingGet()
令牌功能具有以下定义:func token : Single<Token>
从理论上讲,调用需要在主线程中进行,因为使用RxJava2CallAdapterFactory.create()
创建的修改,根据定义在mainThread中运行所有请求,因此我对刷新/获取令牌的调用需要触发NetworkOnMainThreadException
whish并非如此。看起来这些行为是由于对blockingGet
的调用,但文档没有声明使用了特定的线程。
在特定的调度程序上,blockingGet默认不运行
哪个让我问另一个线程然后mainThread
如何调用
因为在我的示例应用程序中,我有2个网络调用一个来检索汽车而另一个用于检索令牌。不知何故,Retrofit存储用于汽车呼叫的调度程序并将其用于令牌调用。
汽车定义:
.cars() .subscribeOn(schedulerProvider.io())