Sobes.tech
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 Looper worden gemaakt met behulp van HandlerThread.

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().