Junior — Middle
Hoe bepaal je de juiste Looper om te gebruiken met Handler bij het uitwisselen van gegevens tussen achtergrond- en hoofdthreads?
sobes.tech AI
Antwoord van AI
In Android wordt Handler gekoppeld aan Looper, die de berichtwachtrij beheert voor een specifieke thread. Om gegevens uit te wisselen tussen een achtergrondthread en de hoofdthread, moet de juiste Looper worden gebruikt:
- Voor de hoofd (UI) thread wordt
Looper.getMainLooper()gebruikt. - Voor een achtergrondthread kan een eigen
Looperworden gemaakt met behulp vanHandlerThread.
Voorbeeld:
// Om berichten naar de hoofdthread te sturen
Handler mainHandler = new Handler(Looper.getMainLooper());
// Voor de achtergrondthread maken we een HandlerThread
HandlerThread handlerThread = new HandlerThread("MyBackgroundThread");
handlerThread.start();
Handler backgroundHandler = new Handler(handlerThread.getLooper());
// Gebruik mainHandler.post(...) om de UI bij te werken vanuit de achtergrondthread
// Gebruik backgroundHandler.post(...) om taken op de achtergrond uit te voeren
Op deze manier wordt de juiste Looper gekozen op basis van de thread waarop de code moet worden uitgevoerd: voor de UI — Looper.getMainLooper(), voor de achtergrond — HandlerThread.getLooper().