Maison > Java > javaDidacticiel > Comment utiliser correctement runOnUiThread pour mettre à jour l'interface utilisateur Android à partir d'un fil de discussion en arrière-plan ?

Comment utiliser correctement runOnUiThread pour mettre à jour l'interface utilisateur Android à partir d'un fil de discussion en arrière-plan ?

Patricia Arquette
Libérer: 2025-01-01 00:40:10
original
825 Les gens l'ont consulté

How to Correctly Use runOnUiThread to Update Android UI from a Background Thread?

runOnUiThread dans le développement Android

Les threads dans Android sont essentiels pour effectuer des tâches en arrière-plan sans bloquer le thread principal de l'interface utilisateur. Pour interagir avec les éléments de l'interface utilisateur à partir d'un fil d'arrière-plan, Android fournit la méthode runOnUiThread.

Malentendu dans le code fourni

Dans le code donné, le problème survient dans le runThread méthode. La création d'une nouvelle instance de Thread avec l'implémentation Runnable est correcte. Cependant, l'exécution de runOnUiThread directement dans le thread d'arrière-plan est incorrecte.

Implémentation correcte

Pour utiliser runOnUiThread correctement, l'approche recommandée consiste à créer un objet Runnable distinct en arrière-plan. thread, puis transmettez-le à runOnUiThread. Le thread principal de l'interface utilisateur exécutera ensuite ce Runnable passé pour mettre à jour les éléments de l'interface utilisateur.

Voici le code corrigé pour la méthode runThread :

private void runThread() {
    new Thread() {
        public void run() {
            while (i++ < 1000) {
                try {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            btn.setText("#" + i);
                        }
                    });
                    Thread.sleep(300);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }.start();
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal