Manera correcta de manejar ninguna red con Retrofit y RX-java

Quiero comprobar si el móvil está conectado a Internet antes de invocar mi servicio de actualización de rx. Si no está conectado, quiero devolver una respuesta falsa que contenga un error.

Terminé con la solución a continuación, utilizando defer (), pero creo que puede ser mejor, cualquier sugerencia?

private Observable<Response> checkNetwork(Observable<Response> retrofitService) { return Observable.defer(new Func0<Observable<Response>>() { @Override public Observable<Response> call() { if (!isOnline()) { return Observable.just(Response.error(R.string.error_no_network_label))); } return retrofitService; } }); } 

Puede implementar la actualización de ErrorHandler como se describe aquí: https://stackoverflow.com/a/21055979/2927901

Y luego manejar la excepción lanzada en el método doOnError o el método onError de sus suscriptores.

  • RxJava como bus de eventos en proyecto Android - eliminar evento del bus
  • Obtenga el valor actual de RxJava Observable
  • ¿Cómo reconstruir o restablecer caché Observable, utilizado con Retrofit para obtener nuevos datos?
  • RxJava y eventos esporádicos al azar en Android
  • Android RxJava, sin bloqueo?
  • ¿Existe una regla de proguard válida para RxJava y FasterXML?
  • RxJavaCallAdapterFactory no se puede convertir en Factory
  • Android rxjava ordenar la lista con la clase de comparación
  • RxJava + Retrofit -> BaseObservable para llamadas API para manejo centralizado de respuesta
  • ¿Cómo utilizar Rx para gestionar múltiples observadores con el fin de mantener una sola conexión abierta a un servicio?
  • RxJava onCompleted y onTerminate en el hilo principal
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.