RxAndroid, bus de eventos y ciclo de vida de la actividad

He encontrado algunos artículos hablando de cómo RxJava / RxAndroid puede reemplazar autobuses de eventos (como otto )

  • Https://lorentzos.com/rxjava-as-event-bus-the-right-way-10a36bdd49ba#.7a4619qva
  • Https://medium.com/mobiwise-blog/use-rxjava-instead-of-event-bus-libraries-aa78b5023097#.ew28h2urf

Una cita del primer artículo:

Otto de Square obtuvo oficialmente obsoleto los días anteriores. En el mundo de Android podemos animar ahora algo así como "EventBusses están muertos viven RxJava".

Hay una cosa que me falta sin embargo:

Una de las ventajas de los buses de eventos es que ayudan mucho con el ciclo de vida de la actividad, ya que no es necesario administrar el registro o el no registro de las devoluciones de llamada de forma manual (y así evitar fugas de memoria fácilmente)

Ejemplo de flujo:

  • La actividad se suscribe a un evento para obtener canciones (diga SongsAvailableEvent)
  • Pedimos canciones (hacemos una solicitud de red)
  • Cambiamos la orientación media del dispositivo
  • La Actividad muere y se construye una nueva, que también está suscrita a la SongsAvailableEvent
  • La nueva actividad obtiene el evento y actualiza la interfaz de usuario, y la antigua Actividad (que ahora está muerta) no recibe el evento (¡yay!)

Los artículos anteriores hacen que parezca que este flujo es "resuelto" por RxAndroid / RxJava, pero usando Rx todavía necesita suscribirse / anular suscripción en un observable manualmente cuando cambia la orientación del dispositivo. Además, si quiero "reutilizar" la solicitud hecha en un Observable, necesito de alguna manera persistir para que me suscriba en ese mismo Observable en la nueva Actividad (no estoy muy seguro de cómo hacerlo, pero es no es la cuestión 🙂 ).

Mi pregunta es: ¿este problema es fácilmente solucionable con RxAndroid / RxJava puro, o todavía necesito usar Rx con un bus de eventos / extender Rx usando algo como RxLifecycle (lo que complica las cosas ya que no manejo mis Observables en la capa de presentación) ?

One Solution collect form web for “RxAndroid, bus de eventos y ciclo de vida de la actividad”

La función OnDestroy de su actividad siempre puede cancelar la suscripción.

En cuanto a hacer que las cosas funcionen para reutilizar solicitud- Mira en Loaders y LoaderManager. EventBus y RxJava para resolver que nunca fue necesario.

  • RXJava - ejecuta múltiples observables tras otro (como concat, pero con onCompleted para cada observable)
  • Uso de "skipWhile" combinado con "repeatWhen" en RxJava para implementar el sondeo de servidor
  • Cómo cancelar la solicitud con retofit2 y RxAndroid
  • Unidad de prueba de la aplicación android con retrofit y rxjava
  • RxJava patrón para solicitar un remoto Observable con una caché temporal
  • Android - RxJava vs AsyncTask para evitar la pérdida de memoria de getActivity ()
  • Cómo manejar el `IllegalArgumentException` en RxJava?
  • Dar un RxJava Observable algo a emitir de otro método
  • Por qué definir Flowable podría recibir actualizaciones de la base de datos
  • Error al resolver la dependencia de RXJava
  • RXJava - Dividir y combinar un Observable
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.