105 votes

Quelle est la différence entre sendStickyBroadcast et sendBroadcast dans Android

Quelle est la différence entre et dans Android ?

120voto

CommonsWare Points 402670

Voici ce que le SDK Android dit à propos de l' sendStickyBroadcast():

Effectuer une sendBroadcast(Intention) que est "collante", qui signifie l'Intention de vous envoyez des séjours autour du après la la diffusion est terminée, de sorte que les autres de pouvoir récupérer rapidement des données par le biais la valeur de retour de registerReceiver(BroadcastReceiver, IntentFilter). Dans tous les autres égards, cette le même comportement que sendBroadcast(Intention).

Un exemple d'un collant de diffusion envoyés par le système d'exploitation est - ACTION_BATTERY_CHANGED. Lorsque vous appelez registerReceiver() pour cette action, même avec un null BroadcastReceiver -- vous obtenez l' Intent qui était la dernière émission de cette action. Par conséquent, vous pouvez l'utiliser pour trouver l'état de la batterie sans nécessairement l'enregistrement pour tous les futurs changements d'état de la batterie.

55voto

ldce Points 632

Types :- Local,Normal,Ordonné et Collante

Normal De Diffusion

:- utiliser sendBroadcast()

:- diffusion asynchrone

:- tout récepteur reçoit pas diffuser un ordre particulier

Commandé Diffusion

:- utiliser sendOrderedBroadcast()

:- synchrone de diffusion

:- récepteur reçoit de diffusion dans la base de priorité

:- nous pouvons aussi simplement abandonner la diffusion de ce type

Diffusion Locale

:- utiliser uniquement lorsque la diffusion est utilisé uniquement à l'intérieur de l'application

Collant De Diffusion

:- diffusion de l'intention n'est plus disponible après est a envoyer et traitées par le système.

:- utiliser sendStickyBroadcast(Intention)

:- le correspondant de l'intention est collante, la signification de l'intention que vous envoyez des séjours autour du après la diffusion est terminée.

:- à cause de cela d'autres peuvent récupérer rapidement des données par le biais de la valeur de retour de registerReceiver(BroadcastReceiver, IntentFilter).

:- en dehors de cela même que sendBroadcast(Intention).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X