Réponses:
Voici ce que dit le SDK AndroidsendStickyBroadcast()
:
Effectuez un sendBroadcast (Intent) qui est «permanent», ce qui signifie que l'intention que vous envoyez reste une fois la diffusion terminée, afin que d'autres puissent récupérer rapidement ces données via la valeur de retour de registerReceiver (BroadcastReceiver, IntentFilter). Dans tous les autres cas, cela se comporte de la même manière que sendBroadcast (Intent).
Un exemple de diffusion persistante envoyée via le système d'exploitation est ACTION_BATTERY_CHANGED
. Lorsque vous appelez registerReceiver()
pour cette action - même avec un null
BroadcastReceiver
- vous obtenez la Intent
dernière diffusion pour cette action. Par conséquent, vous pouvez l'utiliser pour trouver l'état de la batterie sans nécessairement vous enregistrer pour tous les futurs changements d'état de la batterie.
Types : - Local, normal, ordonné et collant
Diffusion normale
: - utilisez sendBroadcast ()
: - diffusion asynchrone
: - tout récepteur reçoit une émission pas un ordre particulier
Diffusion commandée
: - utilisez sendOrderedBroadcast ()
: - diffusion synchrone
: - le récepteur reçoit la diffusion en base prioritaire
: - on peut aussi simplement interrompre la diffusion dans ce type
Diffusion locale
: - à utiliser uniquement lorsque la diffusion est utilisée uniquement dans le même processus
Diffusion collante
: - l'intention de diffusion normale n'est plus disponible une fois qu'elle a été envoyée et traitée par le système.
: - utilisez sendStickyBroadcast (Intent)
: - l'intention correspondante est persistante, ce qui signifie que l'intention que vous envoyez reste une fois la diffusion terminée.
: - à cause de cela, d'autres peuvent récupérer rapidement ces données via la valeur de retour de registerReceiver (BroadcastReceiver, IntentFilter).
: - à part cela même que sendBroadcast (Intent).
sendbroadcast()
- diffusion normale, mais nous pouvons également définir la priorité.
sendstickybroadcast()
- l'intention passée avec ceci sera valable pour les futurs utilisateurs qui s'inscriront par code (récepteurs dynamiques). L'émission qui restera avec Android et sera rediffusée ou rediffusée aux futures demandes de tous les récepteurs de diffusion
Lorsque quelqu'un envoie une diffusion persistante en utilisant, sendstickyBroadcast(intent);
cette diffusion sera disponible pour les futurs utilisateurs qui utilisent des récepteurs dynamiques.
Mais maintenant, vous ne devriez pas utiliser la sendStickyBroadcast()
méthode, elle est obsolète
Depuis la documentation Android:
Cette méthode était obsolète dans l'API niveau 21. Les diffusions persistantes ne doivent pas être utilisées. Ils n'offrent aucune sécurité (n'importe qui peut y accéder), aucune protection (n'importe qui peut les modifier) et bien d'autres problèmes. Le modèle recommandé est d'utiliser une diffusion non collante pour signaler que quelque chose a changé, avec un autre mécanisme permettant aux applications de récupérer la valeur actuelle à tout moment.
J'espère que ça aide.