30 votes

Quelle est la différence entre Activity.runOnUiThread (action exécutable) et Handler.post ()?

Quelles sont les différences / avantages / inconvénients entre l'utilisation de Activity.runOnUiThread ou Handler.post(runnable action) dans Android?

23voto

Erich Douglass Points 21714

De l'activité.runOnUiThread, comme son nom l'indique, va exécuter l'Exécutable dans le fil qui est actuellement responsable de l'INTERFACE utilisateur. Donc, si vous avez un CPU intensive de la tâche, il peut rendre l'INTERFACE ne répond pas pour une courte période de temps. À l'inverse, Gestionnaire fournit un moyen pour vous de créer un thread, exécuter du code, et de l'informer de l'INTERFACE utilisateur lorsque vous avez terminé (j'.e Gestionnaire.sendMessage).

Les docs pour le Gestionnaire d'état mieux que je peux:

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 prend soin de la gestion de la haut niveau les objets de l'application (les activités, les récepteurs de radiodiffusion, etc) et toutes les fenêtres qu'ils créent. Vous pouvez créez votre propre fils, et communiquer avec les principaux thread d'application par l'intermédiaire d'un Gestionnaire. Cela se fait en appelant le même post ou sendMessage méthodes comme avant, mais à partir de votre nouveau thread. Le Exécutable ou un Message sera prévue dans le Gestionnaire de message la file d'attente et traitées le cas échéant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X