¿Cuál es la diferencia entre sendStickyBroadcast
y sendBroadcast
en Android?
fuente
¿Cuál es la diferencia entre sendStickyBroadcast
y sendBroadcast
en Android?
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).
fuente
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 desusoDe la documentación de Android:
Espero que esto ayude.
fuente