【发布时间】:2019-04-10 15:07:37
【问题描述】:
我有下面的代码行运行网络调用来检索令牌:
service.token(initAuth()).blockingGet()
而令牌函数的定义如下:func token : Single<Token>
理论上,调用需要在主线程中完成,因为使用 RxJava2CallAdapterFactory.create() 创建的 retofit 根据定义在 mainThread 中运行所有请求,因此我调用刷新/获取令牌需要触发NetworkOnMainThreadException,但情况并非如此。这些行为似乎是由于对blockingGet 的调用,但文档并未说明使用了特定线程。
blockingGet 默认不会在特定的Scheduler
上运行
这促使我询问如何在另一个线程中完成调用,然后是 mainThread
【问题讨论】:
标签: multithreading retrofit2 rx-java2 scheduler