¿Cómo administrar un DialogFragment con RxJava?

He estado tratando de determinar si es posible crear un DialogFragment observable. Esencialmente, quiero ser capaz de:

  • Crear y mostrar un DialogFragment
  • Obtener una rx Observable que se puede suscribir para el resultado (ok / canceló presionado, Entrada de cadena, éxito de la tarea de fondo / fracaso, etc)
  • Manejar correctamente el cambio de configuración

Hasta ahora lo más cercano que he encontrado es ReactiveDialog , que solía ser parte de RxAndroid, pero se ha eliminado de RxAndroid en v1.0.0 como parte de la simplificación de RxAndroid.

Aunque ReactiveDialog parece cumplir con mis dos primeros criterios, no parece manejar el cambio de configuración. Hay dos aspectos a considerar:

  1. El DialogFragment debe mantener su Observable través del cambio de configuración para poder notificar a los suscriptores de su estado.
  2. El suscriptor (s) debe ser capaz de mantener su suscripción o volver a suscribirse después de un cambio de configuración (obviamente, sin producir una pérdida de memoria).

Todavía soy bastante nuevo en RxJava, así que todavía estoy tratando de envolver mi cabeza alrededor de cómo se podría manejar algo como esto. Parece que debería ser posible, pero me siento como si fuera necesario un administrador estático o Observable singleton y, posiblemente, retainedInstance DialogFragments .

¿Alguien tiene sugerencias o mejores prácticas para esto?

Hay dos problemas aquí; Uno es que usted no quiere perder objetos Java durante relayout – mirar en el tiempo de ejecución cambios docs acerca de eso.

La otra cuestión es que desea crear un observable que tiene la acción del diálogo, cuando se activa esa acción. Para ello, eche un vistazo a los documentos RxJava, el ejemplo Asynchronous Observer . Tendrá que crear un Observable.OnSubscribe , y pasar ese Subscriber a su código que llamará a las llamadas necesarias onNext / onError / onCompleted .

  • RxJava / RxBinding: cómo manejar los errores en RxView
  • Android gestiona la solicitud múltiple rxJava en el dispositivo de rotación
  • Repetir la llamada API con retrofit y rxjava
  • RxJava con presentador y fragmento retenido para cambios de configuración
  • Solución global de errorHandling con RxJava sólo cuando onError no está implementado
  • RxAndroidBle mantener una conexión persistente + Manejo de escritura / notificación
  • Encontrar falta onError en el proyecto
  • RxJava y Retrofit2: NetworkOnMainThreadException
  • Rxandroid pide que se ejecute en el hilo ui aunque esté suscrito en AndroidSchedulers.mainThread ()
  • Manera eficiente de manipular los subprocesos RxJava
  • RxJava / RxAndroid - maneja varios cambios de EditText
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.