Maison > Questions et réponses > le corps du texte
Handler与runOnUiThread更新UI有什么区别?
分别更适合在哪种情况下用?
阿神2017-04-17 17:58:13
En termes de principes de mise en œuvre, il n'y a aucune différence entre les deux runOnUiThread
est également mis en œuvre avec l'aide de Handler
.
Pour les scénarios d'utilisation, runOnUiThread
est simple à utiliser et partage le même Handler
, ce qui le rend efficace et pratique à utiliser. De plus, s'il est appelé directement dans le thread principal, runOnUiThread
peut également être jugé et exécuté immédiatement sans le placer dans la file d'attente des messages.
et Handler
sont plus basiques et donc plus personnalisables que runOnUiThread
. Il peut implémenter des fonctions telles que le marquage et le délai, et peut pousser d'autres threads de boucle de messages au lieu du thread principal.
PHP中文网2017-04-17 17:58:13
runOnUiThread encapsule directement un objet Runnable dans un message et le remet au Looper du thread principal pour exécution. Le code d'exécution est :
handler.post(mRunnable);
Si Handler veut obtenir le même effet, le Looper lié par Handler doit d'abord être le Looper du thread principal, qui peut être obtenu via Looper.getMainLooper(). Ensuite, envoyez également un objet exécutable par courrier.
Il n’y a essentiellement aucune différence.