tutorial start sendbroadcast registerreceiver oreo intent example date_changed connectivity_change android broadcastreceiver

android - start - LocalBroadcastManager vs Context.registerReceiver(), Context.sendBroadcast(Intent) y Context.unregisterReceiver() ¿son iguales?



start broadcast receiver android (1)

Estaba usando Context.registerReceiver(), Context.sendBroadcast(Intent) , and Context.unregisterReceiver()

pero cuando vi la clase LocalBroadcastManager , tiene registerReceiver(), sendBroadcast(Intent) , y unregisterReceiver() como en Context .

Estoy confundido. ¿Cuándo debo usar LocalBroadcastManager ? ¿Son iguales en Context ?

Saludos,

Gracias...


LocalBroadcastManager es como su nombre lo dice, una implementación de los métodos de transmisión que solo están disponibles para su aplicación. Esto tiene algunos beneficios, siendo el más importante la seguridad, un agujero menos al que tener cuidado. En términos de implementación, hay algunas cosas a tener en cuenta:

  • Esta clase es de la biblioteca de soporte de Android
  • Las llamadas al método deben ir precedidas por LocalBroadcastManager.getInstance([CONTEXT]) donde [CONTEXT] es una subclase de la clase Context, como Activity.
  • Cuando usas esta clase, es solo para tu aplicación. Su uso para registrar receptores y realizar transmisiones que abarcan todo el sistema fallará.

Así que esta clase no es lo mismo que Context, es simplemente una implementación muy específica, solo para aplicaciones, de los métodos de recepción / transmisión de Context. Debe usarlo cuando no haya ningún punto para que su oyente escuche en transmisiones globales (en todo el sistema) y cuando su transmisión no tenga que apuntar a nada fuera de su aplicación.