Je suis tombé sur ce terme dans la documentation Android avec la définition qui l'accompagne
Il s'agit de diffusions dont les données sont conservées par le système une fois terminées, afin que les clients puissent récupérer rapidement ces données sans avoir à attendre la prochaine diffusion.
Qu'est-ce que ça veut dire? Quelqu'un peut-il élaborer son utilisation avec un exemple particulier? Je pense que nous devons demander une autorisation pour utiliser cette intention? Pourquoi ça?
<uses-permission android:name="android.permission.BROADCAST_STICKY"/> - Allows an application to broadcast sticky intents.
android
android-intent
Shouvik
la source
la source
Sticky broadcasts should not be used. They provide no security (anyone can access them), no protection (anyone can modify them), and many other problems. The recommended pattern is to use a non-sticky broadcast to report that something has changed, with another mechanism for apps to retrieve the current value whenever desired.
Réponses:
Si une activité appelle
onPause
avec une diffusion normale, la réception de la diffusion peut être manquée. Une diffusion persistante peut être vérifiée après son lancementonResume
.Mise à jour 23/06/2020
Les diffusions persistantes sont obsolètes.
Consultez la
sendStickyBroadcast
documentation .Mettre en place
Ressources
Article connexe: Quelle est la différence entre sendStickyBroadcast et sendBroadcast sous Android?
Voir
removeStickyBroadcast(Intent)
, et au niveau de l'API 5 +,isInitialStickyBroadcast()
pour l'utilisation dans le récepteuronReceive
.la source
sendStickyBroadcast()
exécute unsendBroadcast(Intent)
dit sticky, c'est-à-dire 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 deregisterReceiver(BroadcastReceiver, IntentFilter)
. De toutes les autres manières, cela se comporte de la même manière quesendBroadcast(Intent)
. Un exemple de diffusion persistante envoyée via le système d'exploitation estACTION_BATTERY_CHANGED
. Lorsque vous appelezregisterReceiver()
cette action, même avec une valeur nulleBroadcastReceiver
, vous obtenez l'intention qui a été diffusée en dernier 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.la source
La valeur d'une diffusion persistante est la valeur qui a été diffusée la dernière fois et qui est actuellement conservée dans le cache permanent. Ce n'est pas la valeur d'une émission qui a été reçue en ce moment. Je suppose que vous pouvez dire que c'est comme un cookie de navigateur auquel vous pouvez accéder à tout moment. La diffusion persistante est désormais obsolète, selon la documentation relative aux méthodes de diffusion persistantes ( par exemple ):
la source
Une intention de diffusion normale n'est plus disponible après son envoi et son traitement par le système. Si vous utilisez la méthode sendStickyBroadcast (Intent), l'intention est persistante, ce qui signifie que l'intention que vous envoyez reste une fois la diffusion terminée.
vous vous référez à mon blog: entrez la description du lien ici
la source