Я уже упоминал этот ответ, и, похоже, он связан с 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?
Возможно похожие посты