RxJava2 + Retrofit pantalla negra en request de datos

Estoy enfrentando un problema con una aplicación de Android mientras trato de recuperar algunos datos Api utilizando RxJava2 y Retrofit2 (en Kotlin). Una vez que ejecuto la llamada, la pantalla se vuelve negra y la aplicación ya no responde, sin ningún post de logging.

La URL de llamada que estoy usando es la siguiente:

api/apartments?projection={"id":1,"address":1} 

La interfaz de service para esta llamada es esta:

  @GET("api/apartments?projection={\"id\":1,\"address\":1}") fun getAllApartments(@Header(AUTHORIZATION) auth: String): Single<List<APTLIST>> 

Esta es la forma en que ejecuto la llamada:

  override fun getAllApartments(): Single<List<APTLIST>> = retrofit.create(ApartmentsService::class.java).getAllApartments("$BEARER$token") 

Y así es como llamo a la function:

 getAllApartmentsUseCase.getAllApartments() .subscribe( { apartments.clear() apartments.addAll(it) view.showApartments(apartments) }, { println(it.message) } ) 

Esta llamada funciona en Postman y el resultado es el siguiente:

 [ { "_id": "591ecaca861a528a5b4c3d90", "id": "ROC 03" }, { "_id": "591a0fb2861a528a5b4c3d60" }, { "_id": "58be94d484c4b0a468fb93e0", "id": "CAN 2.3", "address": "Els Refugis" } ] 

Supongo que estás haciendo una llamada web en el hilo principal. Es extraño que solo obtengas algo como ANR y no android.os.NetworkOnMainThreadException.

 getAllApartmentsUseCase .getAllApartments() .subscribeOn(Schedulers.io()) //scheduler in which observable will execute .observeOn(AndroidSchedulers.mainThread()) //scheduler in which subscriber's methods will be called .subscribe(/*subscriber*/) 

https://medium.com/upday-devs/rxjava-subscribeon-vs-observeon-9af518ded53a

  • Extraño comportamiento de componer y ObservableTransformer en RxJava cuando el genérico pasado se extiende
  • Ingrese los valores propios para combinarlos
  • ¿Cómo continuar el procesamiento después de que ocurra un error en RxJava 2?
  • ¿Por qué no puedo usar la interfaz como el tipo genérico en este transformador Rx?
  • No se puede comprimir Rxjava Observables
  • RxJava2 Tal vez devuelva Observable vacío si no hay elemento
  • Cambie Flowable <List <Obj1 >> a Flowable <List <Obj2 >> en la habitación
  • Observable.combineLa causa de error más reciente después de actualizar a RxJava 2.xx - no se puede inferir el tipo
  • RxJava manejando múltiples devoluciones de llamada dentro de un observable
  • Cómo burlarse del repository reactivo que devuelve Observable
  • Sitio de Android con RxJava manejar resultado de consulta vacío