Uso de la transmisión local de Android
Para resolver el problema de seguridad de la transmisión, Android introduce un mecanismo de transmisión local. Las transmisiones enviadas mediante este mecanismo solo se pueden entregar dentro de la aplicación, y el receptor de la transmisión solo puede recibir mensajes de esta aplicación. .
No se pueden recibir transmisiones locales mediante registro estático. Sabemos que el registro estático es principalmente para recibir transmisiones cuando el programa no está iniciado. Cuando enviamos transmisiones locales, el programa debe haberse iniciado, por lo que necesitamos un registro dinámico para crear un receptor.
Aquí creamos una clase LocalReceiver que hereda de BroadcastReceiver. onReceive() maneja el contenido de transmisión que recibes. Aquí uso Toast para crear una ventana emergente que muestra el mensaje recibido
Crea un botón para enviar la transmisión en el archivo Activity_main.xml
<. p> Primero obtenga una instancia a través del método getInstance () del administrador de transmisión local LocalBroadcastManager y cree instancias del filtro IntentFilter y el receptor personalizado LocalReceiver respectivamente. Agregue una acción: localbroadcast (el nombre de la transmisión recibida) a la instancia de IntentFilter, luego llame al método RegisterReceiver() de LocalBroadcastManager para registrarse y pase tanto la instancia de LocalReceiver como la instancia de IntentFilter. De esta forma se crea el oyente local.Llame a sendBroadcast() de LocalBroadcastManager para enviar transmisiones locales. Ejecute el programa y haga clic en el botón Enviar. Podemos ver la ventana emergente que muestra "Esto está en LocalReceiver", lo que indica que la transmisión local se envió y recibió correctamente.
Por supuesto, no debemos olvidarnos de cancelar la inscripción al final. Podemos hacer esto llamando al método unregisterReceiver(). En este punto, se completa el envío de transmisión estándar de Android.
1. Las transmisiones enviadas solo se pueden entregar dentro de este programa, por lo que no hay necesidad de preocuparse por la fuga de datos.
2. Las transmisiones de otros programas no se pueden enviar al interior de este programa, por lo que no hay necesidad de preocuparse por las vulnerabilidades de seguridad
3. La transmisión local es más eficiente que la transmisión global del sistema