Kann jemand erklären, warum Handler einen runnable schreiben? Überschreibt HandleMessage und das Senden einer Nachricht das Gleiche?Android: Warum buchen Handler eine ausführbare Datei?
Ich habe etwas ungeprüften Code geschrieben, um zu zeigen, wie ich denke, dass diese beiden Möglichkeiten implementiert werden. Bitte korrigiere mich, wenn ich falsch liege.
Handler mit Beitrag:
handler.post(new Runnable() {
@Override
public void run() {
imageView.doSomething();
}
});
Handler mit handle:
final Handler handler = new Handler() {
@Override
public void handleMessage(Message message) {
imageView.doSomething();
}
};
handler.sendMessage(message);
Nun, es gibt einen sehr, sehr kleinen Leistungseinbruch für das Erstellen eines neuen Objekts (das runnable). Aber es ist vernachlässigbar. – eordano
Wenn Sie jedoch den Code auf dem UI-Thread ausführen möchten, müssen Sie den Handler im UI-Thread erstellen oder "new Handler (Looper.getMainLooper())" verwenden. Mit "new Handler()" erstellen Sie einen Handler im aktuellen Thread, der nicht der Hauptthread sein muss. – Kuno