Maison >Java >javaDidacticiel >Comment publier des tâches sur le fil de discussion principal Android à partir d'un autre fil de discussion ?

Comment publier des tâches sur le fil de discussion principal Android à partir d'un autre fil de discussion ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-09 04:59:18238parcourir

How to Post Tasks to the Android Main Thread from Another Thread?

Publication de tâches sur le fil de discussion principal à partir d'un autre fil de discussion du service Android

Dans les services Android, lors de la création de fils de discussion pour des tâches en arrière-plan, il peut être nécessaire de publier certaines tâches, comme Runnables, sur la file d'attente des messages du fil principal provenant d'un autre fil.

Pour y parvenir, Android propose deux solutions :

Utiliser un objet Contexte

Si le fil d'arrière-plan a une référence à un objet Contexte, vous pouvez accéder au gestionnaire du fil principal comme ceci :

// Get a handler that can be used to post to the main thread
Handler mainHandler = new Handler(context.getMainLooper());

Runnable myRunnable = new Runnable() {
    @Override 
    public void run() {....} // This is your code
};
mainHandler.post(myRunnable);

Sans Utilisation d'un objet Context

Si le thread d'arrière-plan n'a pas d'objet Context, vous pouvez accéder directement au Looper du thread principal et créer un Gestionnaire :

// Get a handler that can be used to post to the main thread
Handler mainHandler = new Handler(Looper.getMainLooper());

Runnable myRunnable = new Runnable() {
    @Override 
    public void run() {....} // This is your code
};
mainHandler.post(myRunnable);

Avec l'une ou l'autre de ces approches, vous pouvez publier des tâches dans la file d'attente des messages du fil principal et vous assurer qu'elles sont exécutées dans le fil principal, ce qui vous permet de mettre à jour les composants de l'interface utilisateur ou d'effectuer d'autres opérations nécessitant un accès. aux principales ressources de l'application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn