//case 1:post to main thread's handler
mHandler.post(new Runnable(){
public void run(){
dosomething(); //update UI
});
//case 2:run in main thread
dosomething();
1
A
Répondre
3
Même si vous êtes sur le thread du gestionnaire, le cas 1 sera mis en file d'attente et le cas 2 sera exécuté immédiatement.
2
Eh bien, si vous êtes dans le fil principal, alors vous êtes dans le fil principal, donc c'est bien. Mais très souvent, vous êtes dans un thread de travail et vous voulez faire quelque chose qui ne peut être fait que dans le thread principal (comme la mise à jour de l'interface utilisateur). Dans ces cas, vous devez faire quelque chose de spécial pour exécuter votre code sur le thread principal - le code du gestionnaire que vous avez posté serait un exemple.