Respuestas:
Esto es lo que dice el SDK de AndroidsendStickyBroadcast()
:
Realice un sendBroadcast (Intent) que sea "pegajoso", lo que significa que el Intent que está enviando permanece después de que se completa la transmisión, para que otros puedan recuperar rápidamente esos datos a través del valor de retorno de registerReceiver (BroadcastReceiver, IntentFilter). De todas las demás formas, esto se comporta igual que sendBroadcast (Intent).
Un ejemplo de una transmisión permanente enviada a través del sistema operativo es ACTION_BATTERY_CHANGED
. Cuando pides registerReceiver()
esa acción, incluso con un null
BroadcastReceiver
, obtienes la Intent
última transmisión de esa acción. Por lo tanto, puede usar esto para encontrar el estado de la batería sin registrarse necesariamente para todos los cambios de estado futuros en la batería.
Tipos : - local, normal, ordenado y pegajoso
Transmisión normal
: - use sendBroadcast ()
: - difusión asincrónica
: - cualquier receptor recibe difusión sin ningún orden en particular
Emisión ordenada
: - use sendOrderedBroadcast ()
: - difusión sincrónica
: - el receptor recibe difusión en base prioritaria
: - también podemos simplemente cancelar la transmisión en este tipo
Transmisión local
: - usar solo cuando la transmisión se usa solo dentro del mismo proceso
Difusión pegajosa
: - el intento de transmisión normal ya no está disponible después de que el sistema lo envió y procesó.
: - use sendStickyBroadcast (Intención)
: - la intención correspondiente es pegajosa, lo que significa que la intención que está enviando permanece después de que se completa la transmisión.
: - debido a esto, otros pueden recuperar rápidamente esos datos a través del valor de retorno de registerReceiver (BroadcastReceiver, IntentFilter).
: - aparte de esto mismo que sendBroadcast (Intent).
sendbroadcast()
- emisión normal, pero también podemos establecer prioridad.
sendstickybroadcast()
- La intención pasada con esto se mantendrá para los futuros usuarios que se registren mediante código (receptores dinámicos). La transmisión que se quedará en Android y se volverá a enviar o retransmitir a las solicitudes futuras de cualquier receptor de transmisión.
Cuando alguien envía una transmisión pegajosa usando sendstickyBroadcast(intent);
, esa transmisión estará disponible para los futuros usuarios que estén usando receptores dinámicos.
Pero ahora no debes usar el sendStickyBroadcast()
método, está en desuso
De la documentación de Android:
Este método quedó obsoleto en el nivel de API 21. No se deben usar transmisiones fijas. No brindan seguridad (cualquiera puede acceder a ellos), ninguna protección (cualquiera puede modificarlos) y muchos otros problemas. El patrón recomendado es usar una transmisión no pegajosa para informar que algo ha cambiado, con otro mecanismo para que las aplicaciones recuperen el valor actual cuando lo deseen
Espero que esto ayude.