studio start registerreceiver oreo intent example date_changed android android-intent android-broadcast

start - ¿Cuál es la diferencia entre sendStickyBroadcast y sendBroadcast en Android



send broadcast android (3)

sendStickyBroadcast() es lo que dice el SDK de Android sobre sendStickyBroadcast() :

Realice sendBroadcast (Intención) que sea "adhesivo", lo que significa que la intención que está enviando se mantiene 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). En todos los demás aspectos, esto se comporta de la misma manera que sendBroadcast (Intención).

Un ejemplo de transmisión ACTION_BATTERY_CHANGED enviada a través del sistema operativo es ACTION_BATTERY_CHANGED . Cuando llama a registerReceiver() para esa acción, incluso con un BroadcastReceiver null , obtiene la Intent que se emitió por última vez para 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.

¿Cuál es la diferencia entre sendStickyBroadcast y sendBroadcast en Android?


sendbroadcast() - transmisión normal, pero también podemos establecer prioridades.

sendstickybroadcast() - el intento pasado con esto se mantendrá para los futuros usuarios que se registren a través del código (receptores dinámicos). La transmisión que se quedará con Android, y será reenviada o retransmitida a las futuras solicitudes de cualquier receptor de transmisión

Cuando alguien envía una transmisión adhesiva usando sendstickyBroadcast(intent); entonces esa transmisión estará disponible para los futuros usuarios que estén usando receptores dinámicos.

Pero ahora no deberías usar el método sendStickyBroadcast() , está en desuso

De la documentación de Android:

Este método quedó obsoleto en el nivel de API 21. Las transmisiones fijas no deberían utilizarse. No proporcionan seguridad (cualquiera puede acceder a ellos), no hay protección (cualquiera puede modificarlos) y muchos otros problemas. El patrón recomendado es utilizar una transmisión no adhesiva para informar que algo ha cambiado, con otro mecanismo para que las aplicaciones recuperen el valor actual cuando lo deseen.

Espero que esto ayude.


Tipos : - Local, Normal, ordenado y Adhesivo

Transmisión normal

: - use sendBroadcast ()

: - difusión asincrónica

: - cualquier receptor recibe emisión no cualquier orden particular

Transmisión ordenada

: - use sendOrderedBroadcast ()

: - difusión sincrónica

: - el receptor recibe la transmisión en base de prioridad

: - 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 haya enviado y procesado.

: - use sendStickyBroadcast (Intento)

: - el intento correspondiente es adhesivo, lo que significa que la intención que está enviando se mantiene 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, envía sendBroadcast (Intención).