Langage

Handler Classe

Définition

Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter Message des objets associés aux threads MessageQueue.

[Android.Runtime.Register("android/os/Handler", DoNotGenerateAcw=true)]
public class Handler : Java.Lang.Object
[<Android.Runtime.Register("android/os/Handler", DoNotGenerateAcw=true)>]
type Handler = class
    inherit Object
Héritage
Dérivé
Attributs

Remarques

Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter Message des objets associés aux threads MessageQueue. Chaque instance de gestionnaire est associée à un thread unique et à la file d’attente des messages de ce thread. Lorsque vous créez un gestionnaire, il est lié à un Looper. Il remet des messages et des exécutables à la file d’attente des messages de ce Looper et les exécute sur le thread de ce Looper.

Il existe deux utilisations principales pour un gestionnaire : (1) pour planifier les messages et les runnables à exécuter à un moment donné dans le futur ; et (2) pour mettre en file d’attente une action à effectuer sur un thread différent de celui de votre propre.

La planification des messages est effectuée avec les méthodes , #post, #postAtTime(Runnable, long)#postDelayed#sendEmptyMessage#sendMessage#sendMessageAtTime#sendMessageDelayed Les <versions em>post</> em vous permettent d’envoyer en file d’attente des objets runnables à appeler par la file d’attente de messages lorsqu’ils sont reçus ; les <versions em>sendMessage</em> vous permettent de mettre en file d’attente un Message objet contenant un ensemble de données qui seront traitées par la méthode du #handleMessage gestionnaire (nécessitant que vous implémentez une sous-classe de gestionnaire).

Lors de la publication ou de l’envoi à un gestionnaire, vous pouvez autoriser le traitement de l’élément dès que la file d’attente de messages est prête à le faire, ou spécifier un délai avant qu’il ne soit traité ou absolu pour qu’il soit traité. Ces deux derniers vous permettent d’implémenter des délais d’expiration, des cycles et d’autres comportements basés sur le minutage.

Lorsqu’un processus est créé pour votre application, son thread principal est dédié à l’exécution d’une file d’attente de messages qui s’occupe de la gestion des objets d’application de niveau supérieur (activités, récepteurs de diffusion, etc.) et de toutes les fenêtres qu’ils créent. Vous pouvez créer vos propres threads et communiquer avec le thread d’application principal via un gestionnaire. Pour ce faire, appelez les mêmes<> méthodes em post</em> ou <em>sendMessage</em> que précédemment, mais à partir de votre nouveau thread. L’exécution donnée ou le message sera ensuite planifié dans la file d’attente des messages du gestionnaire et traité le cas échéant.

<Considérations relatives aux performances h2>lors de l’utilisation Handler<de /h2>

Notez que les méthodes Handler « has » et « remove » peuvent être très lentes, car ces opérations analysent toute la file d’attente des messages en attente. Si les messages MessageQueue sous-jacents Loopersont nombreux, cela peut être coûteux.

<ul><li>Au lieu de supprimer un message ou un rappel pour annuler une opération en attente, envisagez de définir un indicateur pour indiquer l’annulation et de vérifier l’indicateur avant de continuer. <Li>Au lieu de vérifier si la file d’attente a un message ou un rappel pour déterminer si une opération en attente n’a pas encore eu lieu, pensez à ce que cette opération ait défini un indicateur pour indiquer qu’elle a commencé. </ul>

Consultez java.util.concurrent les primitives d’accès concurrentiel standard.

Java documentation pour android.os.Handler.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

Constructeurs

Nom Description
Handler()

Le constructeur par défaut associe ce gestionnaire au Looper thread actuel.

Handler(Action<Message>)

Initialise une nouvelle instance de la classe Gestionnaire.

Handler(Handler+ICallback)

Le constructeur associe ce gestionnaire au Looper thread actuel et prend une interface de rappel dans laquelle vous pouvez gérer les messages.

Handler(IntPtr, JniHandleOwnership)

Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime.

Handler(Looper, Handler+ICallback)

Utilisez la valeur fournie Looper au lieu de celle par défaut et prenez une interface de rappel dans laquelle gérer les messages.

Handler(Looper)

Utilisez l’élément fourni au lieu de celui par Looper défaut.

Propriétés

Nom Description
Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
JniIdentityHashCode

Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité.

(Hérité de Object)
JniManagedPeerState

Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter Message des objets associés aux threads MessageQueue.

(Hérité de JavaObject)
JniPeerMembers

Fournit des métadonnées de membre homologue JNI pour ce type.

Looper

Obtient la valeur looper.

PeerReference

Obtient la référence d’objet JNI pour cet homologue Java.

(Hérité de Object)
ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

Méthodes

Nom Description
Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter Message des objets associés aux threads MessageQueue.

(Hérité de JavaObject)
CreateAsync(Looper, Handler+ICallback)

Créez un gestionnaire dont les messages publiés et les exécutables ne sont pas soumis à des obstacles de synchronisation tels que la synchronisation vsync.

CreateAsync(Looper)

Créez un gestionnaire dont les messages publiés et les exécutables ne sont pas soumis à des obstacles de synchronisation tels que la synchronisation vsync.

DispatchMessage(Message)

Gérez les messages système ici.

Dispose()

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
Dispose(Boolean)

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
DisposeUnlessReferenced()

Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter Message des objets associés aux threads MessageQueue.

(Hérité de JavaObject)
Dump(IPrinter, String)

Écrit l’état de cet objet dans la sortie fournie.

DumpAsync(IPrinter, String)

Effectue de façon asynchrone l’opération correspondante.

Equals(Object)

Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter Message des objets associés aux threads MessageQueue.

(Hérité de JavaObject)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
GetHashCode()

Retourne une valeur de code de hachage pour l’objet.

(Hérité de Object)
GetMessageName(Message)

Retourne une chaîne représentant le nom du message spécifié.

HandleMessage(Message)

Les sous-classes doivent implémenter cette opération pour recevoir des messages.

HasCallbacks(IRunnable)

Vérifiez s’il existe des publications en attente de messages avec r de rappel dans la file d’attente des messages.

HasMessages(Int32, Object)

Vérifiez s’il existe des publications en attente de messages avec le code « what » et dont obj est « object » dans la file d’attente de messages.

HasMessages(Int32)

Vérifiez s’il existe des publications en attente de messages avec le code « quoi » dans la file d’attente des messages.

JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
ObtainMessage()

Retourne un nouveau android.os.Message Message à partir du pool de messages global.

ObtainMessage(Int32, Int32, Int32, Object)

Identique à #obtainMessage(), sauf qu’il définit également les valeurs quoi, obj, arg1 et arg2 sur le message retourné.

ObtainMessage(Int32, Int32, Int32)

Identique à #obtainMessage(), sauf qu’il définit également les membres, arg1 et arg2 du message retourné.

ObtainMessage(Int32, Object)

Identique à #obtainMessage(), sauf qu’il définit également les membres et obj du message retourné.

ObtainMessage(Int32)

Identique à #obtainMessage(), sauf qu’il définit également le membre du message retourné.

Post(Action)

Ajoute l’exécutable à la file d’attente de messages de ce gestionnaire.

Post(IRunnable)

Provoque l’ajout de r runnable à la file d’attente de messages.

PostAtFrontOfQueue(Action)

Publie l’exécutable pour l’itération suivante de la file d’attente de messages de ce gestionnaire.

PostAtFrontOfQueue(IRunnable)

Publie un message dans un objet qui implémente Runnable.

PostAtTime(Action, Int64)

Publie le runnable à exécuter à l’heure d’activité spécifiée.

PostAtTime(Action, Object, Int64)

Publie le runnable à exécuter à l’heure d’activité spécifiée.

PostAtTime(IRunnable, Int64)

Entraîne l’ajout de r runnable à la file d’attente de messages, à une heure spécifique donnée par <var>uptimeMillis</var>.

PostAtTime(IRunnable, Object, Int64)

Entraîne l’ajout de r runnable à la file d’attente de messages, à une heure spécifique donnée par <var>uptimeMillis</var>.

PostDelayed(Action, Int64)

Publie l’exécution exécutable après le délai spécifié.

PostDelayed(IRunnable, Int64)

Entraîne l’ajout de r runnable à la file d’attente de messages, après la durée spécifiée.

PostDelayed(IRunnable, Object, Int64)

Entraîne l’ajout de r runnable à la file d’attente de messages, après la durée spécifiée.

RemoveCallbacks(Action, Object)

Supprime les rappels en attente pour l’exécutable spécifié.

RemoveCallbacks(Action)

Supprime les rappels en attente pour l’exécutable spécifié.

RemoveCallbacks(IRunnable, Object)

Supprimez les publications en attente de runnable <var>r</var> avec le jeton< var>object <qui> se trouvent dans la file d’attente de messages.

RemoveCallbacks(IRunnable)

Supprimez les publications en attente de r exécutables qui se trouvent dans la file d’attente des messages.

RemoveCallbacksAndMessages(Object)

Supprimez les publications en attente de rappels et les messages envoyés dont <var obj>/var< est >var<token>/var<>.

RemoveMessages(Int32, Object)

Supprimez les publications en attente de messages avec le code « what » et dont obj est « object » qui se trouvent dans la file d’attente des messages.

RemoveMessages(Int32)

Supprimez les publications en attente de messages avec le code « what » qui se trouvent dans la file d’attente des messages.

SendEmptyMessage(Int32)

Envoie un message contenant uniquement la valeur à inclure.

SendEmptyMessageAtTime(Int32, Int64)

Envoie un message contenant uniquement la valeur à remettre à un moment spécifique.

SendEmptyMessageDelayed(Int32, Int64)

Envoie un message contenant uniquement la valeur à remettre après la durée spécifiée.

SendMessage(Message)

Envoie un message à la fin de la file d’attente de messages après tous les messages en attente avant l’heure actuelle.

SendMessageAtFrontOfQueue(Message)

Mise en file d’attente d’un message devant la file d’attente de messages, à traiter lors de l’itération suivante de la boucle de message.

SendMessageAtTime(Message, Int64)

Mettre en file d’attente un message dans la file d’attente de messages après tous les messages en attente avant le temps absolu (en millisecondes) <var>uptimeMillis</var>.

SendMessageDelayed(Message, Int64)

Mettre en file d’attente un message dans la file d’attente de messages après tous les messages en attente avant (heure actuelle + delayMillis).

SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter Message des objets associés aux threads MessageQueue.

(Hérité de JavaObject)
ToArray<T>()

Crée un tableau managé à partir de ce wrapper de tableau Java.

(Hérité de Object)
ToString()

Retourne une représentation sous forme de chaîne de l’objet.

(Hérité de Object)
UnregisterFromRuntime()

Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
IJavaPeerable.Disposed()

Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter Message des objets associés aux threads MessageQueue.

(Hérité de JavaObject)
IJavaPeerable.Finalized()

Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter Message des objets associés aux threads MessageQueue.

(Hérité de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter Message des objets associés aux threads MessageQueue.

(Hérité de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter Message des objets associés aux threads MessageQueue.

(Hérité de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter Message des objets associés aux threads MessageQueue.

(Hérité de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter Message des objets associés aux threads MessageQueue.

(Hérité de JavaObject)

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter Message des objets associés aux threads MessageQueue.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à