Handler Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 |
| 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 |
Propriétés
| Nom | Description |
|---|---|
| Class |
Retourne la classe runtime de ce |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| ObtainMessage(Int32, Int32, Int32, Object) |
Identique à |
| ObtainMessage(Int32, Int32, Int32) |
Identique à |
| ObtainMessage(Int32, Object) |
Identique à |
| ObtainMessage(Int32) |
Identique à |
| 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 |
| 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 |
| IJavaPeerable.Finalized() |
Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter |
| IJavaPeerable.JniObjectReferenceControlBlock |
Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Un gestionnaire vous permet d’envoyer et de traiter et d’exécuter |
Méthodes d’extension
| Nom | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtient le nom JNI du type de l’instance |
| JavaAs<TResult>(IJavaPeerable) |
Essayez de forcer |
| 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 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Essayez de forcer |