org greenrobot eventbus android android-fragments android-activity callback event-bus

android - greenrobot - eventbus subscribe



Callbacks de Fragment vs EventBus en Android (2)

Me he enfrentado con el problema. Mi Activity es un contenedor de fragmentos, así que para comunicarme entre la actividad y los fragmentos utilicé el enfoque de Callback común. En este caso, mi actividad tiene que implementar toneladas de interfaces de devolución de llamada según el recuento de fragmentos.
No me gusta hardcode y código ilegible. En mi caso, mi declaración de clase puede tomar varias líneas para enumerar todas las interfaces.
Estoy tratando de deshacerme de esto.

Hay otro enfoque es usar el patrón EventBus .
En actividad

EventBus.getDefault().register(this);

En fragmento

EventBus.getDetault().post(new MyEvent(description));

Y maneja varios tipos de eventos en actividad.

¿Tal vez será mejor utilizar EventBus aquí en lugar de enfoque de devolución de llamada por defecto?
O tal vez es mi culpa que mi actividad contenga muchos fragmentos (Objeto de Dios) y es mejor usar actividades en vez de Fragmento.

Por favor, sugiérame qué enfoque es mejor?


Para una jerarquía simple de Actividad a uno Fragmento, la devolución de llamada es la decisión más simple de tomar. Pero piense en la Actividad que contiene un Fragmento, y el Fragmento contiene ViewPager puede ViewPager , y cada pestaña de ViewPager tiene Fragmentos A, B, C.

El Fragmento A, B, C irá a un viaje largo para enviar eventos a la actividad madre, y se puede perder la conectividad de la interfaz entre la actividad y los niños cuando se restauren durante los locos ciclos de vida del complejo Android Activity-Fragment . En este caso, eventbus como otto puede ser una buena opción.

El inconveniente del enfoque del bus de eventos es que es difícil mantener de dónde viene el evento. Por lo tanto, se recomienda mantener unos pocos remitentes.


Su enfoque de interface es increíble, simplemente manténgase al día con ellos, y tal vez intente dividir / hacer que su interface estática y agregue todos los pequeños pequeños void y return method a esa interfaz para que pueda implementar una y llamar a las funciones.

EventBus ? ¿ LocalBroadcastReceiver ? es una cuestión de preferencia y cuál crees que te conviene más, después de todo si manejas 10.000 solicitudes y odias tener 100 interface , terminarás usando 1 y anidando 99.

y simplemente lo olvidé, es mejor tener mucho Fragment lugar de Activity porque al final del día, el Activity vida de la Activity es bastante difícil de mantener, en segundo lugar, no se puede controlar bien la Activity todo en comparación con el Fragment y el Fragment es un buen esclavo, te sirve mejor

espero que sea valioso