我已经提到过这个答案,它似乎与 Retrofit v1 相关。
目标 -> 通过使 ObjectMapper 在非主线程上工作来减少冷启动时间。此图像显示了它在主线程上发生的堆栈跟踪。
设置:
compile "com.squareup.retrofit2:retrofit:2.1.0"
compile "com.squareup.retrofit2:converter-jackson:2.1.0"
compile "com.squareup.retrofit2:adapter-rxjava:2.1.0"
compile 'io.reactivex:rxjava:1.1.9'
这是改造的配置
.addCallAdapterFactory(RxJavaCallAdapterFactory.createWithScheduler(Schedulers.io()))
.addConverterFactory(JacksonConverterFactory.create(ObjectMapperFactory.getObjectMapper()))
下面是一个典型的网络调用示例
compatibilityService().isCompatible()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(response -> { ...});
在JacksonConverterFactory中,对象映射似乎在主线程上工作。
不离开 RxJava 的解决方案是什么?
可能相关的帖子