Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.