[JAVA] Comparaison d'Android Handler Looper et de runOnUiThread

Lors de l'appel à partir d'un thread autre que le thread d'interface utilisateur, les deux méthodes d'écriture suivantes sont identiques.

Looper.getMainLooper()



Runnable task = getTask();
new Handler(Looper.getMainLooper()).post(task);

Activity#runOnUiThread()


Runnable task = getTask();
runOnUiThread(task);

Lors de l'appel à partir du thread d'interface utilisateur, il sera exécuté directement sur le thread d'interface utilisateur dans le cas de runOnUiThread selon la source suivante.

public final void runOnUiThread(Runnable action) {
    if (Thread.currentThread() != mUiThread) {
        mHandler.post(action);
    } else { //Exécuter directement pour les threads de l'interface utilisateur
        action.run();
    }
}

Recommended Posts

Comparaison d'Android Handler Looper et de runOnUiThread
Comparaison approfondie des implémentations Android et iOS
[Java / Swift] Comparaison de l'interface Java et du protocole Swift
Comparaison des objets JavaScript et des classes Ruby
Comparaison de l'implémentation de la production qui fait briller les images sur iOS et Android
Chrome59 Comparaison du fonctionnement en mode normal et sans tête
La comparaison d'énumération est ==, et equals est bonne [Java]
Comparaison équivalente de la classe wrapper Java et du type primitif
[Java] Comparaison des chaînes de caractères et && et ||
Définition des constantes Android
[Java] Méthode de comparaison de chaînes de caractères et méthode de comparaison utilisant des expressions régulières