2017-11-13 4 views
0

Ich lerne über LooperHandler und ich fand, dass dies hauptsächlich für die Arbeit mit UI-Thread verwendet wird. Dann bin ich etwas verwirrt, wenn wir die Handler-Klasse brauchen und die Methode handleMessage verwenden.Wozu genau Looper und Handler?

Beispiel wir können mit UI-Thread nur durch einfaches Beispiel arbeiten.

Handler handler = new Handler(); 
handler.post(new Runnable(){ 
    public void run(){ 
    // update UI here 
    } 
}); 

Wir können einfach mit UI-Thread durch nur kurzen Code kommunizieren. Hier wird der Handler automatisch mit MainLooper verbunden.

Dann, wenn wir brauchen Kind Klasse von Handler und arbeiten mit handleMessage(Message msg) Methode.

Antwort

0

Looper ist eine Klasse, die zum Ausführen einer Nachrichtenschleife für einen Thread verwendet wird. Threads von Standard haben keine Nachrichtenschleife mit ihnen verknüpft; Um einen zu erstellen, rufen Sie prepare() in dem Thread auf, der die Schleife ausführen soll, und dann loop(), um Nachrichten verarbeiten zu lassen, bis die Schleife beendet wird.

Lesen Sie mehr über Looper Klasse here.

Es gibt zwei Hauptverwendungszwecke für einen Handler: (1) planen, Nachrichten und Runnables als irgendwann in der Zukunft ausgeführt werden sollen; und (2) bis fügen Sie eine Aktion in die Warteschlange ein, die an einem anderen Thread als Ihrem eigenen ausgeführt werden soll.

Lesen Sie mehr über Handler Klasse here.

+0

Ich habe bereits die Dokumente gelesen, aber immer noch nicht verstanden. Ich fragte, wann ich eine Kindklasse des Hundeführers brauche. und müssen 'handleMessage (Message m);' –