Kann jemand erklären, warum jemand die Android-Looper-Funktion verwenden sollte, um einen "Pipeline-Thread" zu erstellen, anstatt einen normalen Thread zu erstellen, der Aufgaben aus einer BlockingQueue zieht? Auf der Oberfläche scheint es zwei Möglichkeiten zu geben, das Gleiche zu tun.
BlockingQueue ermöglicht es Ihnen, mehrere Konsumenten und Produzenten zu haben, während der Looper-Mechanismus Ihnen mehrere Produzenten, aber nur einen Konsumenten ermöglicht.
Im Looper-Thread wird also immer nur eine Aufgabe ausgeführt (runnable). Der Looper-Mechanismus wurde erstellt, damit Sie Runnables (Aufgaben, die als Nachrichten gekapselt sind) auf dem UI-Thread (der als einzelner Thread ausgeführt wird, also als Einzel-Thread-Consumer) einfach ausführen können.
Looper / Handler bietet auch Funktionen für die verzögerte Ausführung von Aufgaben, die nicht standardmäßig von BlockingQueue ausgeführt werden. Auch dies ist wichtig im Zusammenhang mit UI-Toolkits.
Tags und Links android blockingqueue looper