localbroadcastmanager está en desuso, utilice implementaciones del patrón observable en su lugar.
androidx.localbroadcastmanager
está en desuso en la versión 1.1.0
Razón
LocalBroadcastManager
es un bus de eventos para toda la aplicación y abarca las infracciones de capa en su aplicación; cualquier componente puede escuchar eventos de cualquier otro componente. Hereda limitaciones innecesarias de casos de uso del sistema BroadcastManager; los desarrolladores tienen que usar Intent aunque los objetos vivan en un solo proceso y nunca lo abandonen. Por esta misma razón, no sigue a BroadcastManager en cuanto a funciones.
Estos se suman a una experiencia confusa del desarrollador.
Reemplazo
Puede reemplazar el uso de LocalBroadcastManager
con otras implementaciones del patrón observable. Dependiendo de su caso de uso, las opciones adecuadas pueden ser LiveData
o flujos reactivos.
Ventaja de LiveData
Puede extender un LiveData
objeto usando el patrón singleton para ajustar los servicios del sistema para que puedan compartirse en su aplicación. El LiveData
objeto se conecta al servicio del sistema una vez, y luego cualquier observador que necesite el recurso puede simplemente observar el LiveData
objeto.
public class MyFragment extends Fragment {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
LiveData<BigDecimal> myPriceListener = ...;
myPriceListener.observe(this, price -> {
// Update the UI.
});
}
}
El observe()
método pasa el fragmento, que es una instancia de LifecycleOwner
, como primer argumento. Hacerlo indica que este observador está vinculado al Lifecycle
objeto asociado con el propietario, lo que significa:
Si el objeto del ciclo de vida no está en un estado activo, no se llama al observador incluso si el valor cambia.
Después de que se destruye el objeto del ciclo de vida, el observador se elimina automáticamente
El hecho de que los LiveData
objetos sean conscientes del ciclo de vida significa que puede compartirlos entre múltiples actividades, fragmentos y servicios.