Der Thread (a HandlerThread
) wird in begonnen in onCreate
, wenn du anrufst thread.start();
, Dann erhalten Sie einen Hinweis auf die Looper
von diesem Thread (nur einer Looper
wird per erstellt HandlerThread
) um a zu erstellen Handler
und die Handler
wird verwendet, um Nachrichten an den Thread zu veröffentlichen. Das Looper
ist das Objekt, das auf die Nachrichten in a wartet while(true)
Schleife.
Jedes Mal, wenn ein Befehl an die gesendet wird Service
, das Service
veröffentlicht eine Nachricht an die HandlerThread
durch die Handler
.
Ein genauerer Blick auf den Quellcode hilft Ihnen, besser zu verstehen, wie alles funktioniert. Es gibt einen Excelente -Beitrag darüber Handler
s und Looper
s at Square Engineering Blog - Eine Reise auf dem Android -Haupt -Thread - Teil 1.
Sie können auch eine verwenden Intentservice Um Ihre eigenen Threads zu vermeiden.