L'UIThread est le thread principal de l'exécution de votre application. C'est où la plupart de vos code de l'application est exécutée. Tous les composants de votre application (Activités, Services, ContentProviders, BroadcastReceivers) sont créés dans ce fil, et tout le système des appels à ces composants sont effectuées dans ce fil.
Par exemple, disons que votre application est une seule classe d'Activité. Puis tout le cycle de vie des méthodes et des plus de votre code de gestion des événements est exécuté dans cet UIThread. Ce sont des méthodes comme l' onCreate
, onPause
, onDestroy
, onClick
, etc. En outre, c'est là que toutes les mises à jour de l'INTERFACE utilisateur sont faites. Tout ce qui provoque de l'INTERFACE utilisateur pour être mis à jour ou modifié doit se passer sur le thread d'INTERFACE utilisateur.
Pour plus d'informations sur votre application, les Processus et les Threads cliquez ici.
Lorsque vous avez explicitement générer un nouveau thread pour le faire fonctionner en arrière-plan, ce code n'est pas exécuté sur l'UIThread. Donc ce qui arrive si ce thread d'arrière-plan doit faire quelque chose qui change l'INTERFACE utilisateur? C'est ce que l' runOnUiThread
. En fait, vous êtes censé utiliser un Gestionnaire (voir le lien ci-dessous pour plus d'info sur ce sujet). Il fournit ces threads d'arrière-plan de la capacité à exécuter le code qui permet de modifier l'INTERFACE utilisateur. Ils le font en mettant l'INTERFACE de modification de code dans un objet Praticable et en passant à la runOnUiThread méthode.
Pour plus d'informations sur les threads de travail et la mise à jour de l'INTERFACE utilisateur à partir d'eux, cliquez ici
Personnellement, je utiliser uniquement l' runOnUiThread
méthode dans mon Instrumentation des Essais. Depuis le test de code ne s'exécute pas dans l'UIThread, vous devez utiliser cette méthode pour exécuter le code qui modifie l'INTERFACE utilisateur. Donc, je l'utilise pour injecter cliquez et événements clés dans mon application. Je peux alors vérifier l'état de l'application pour s'assurer que les choses se sont passées.
Pour plus d'informations sur les tests et l'exécution de code sur l'UIThread cliquez ici