Sobes.tech
Junior — Middle

Hoe kun je een bericht verkrijgen in de hoofdthread met behulp van Handler en Looper?

sobes.tech AI

Antwoord van AI

In Android wordt de klasse Looper voornamelijk (UI) gebruikt om berichten te verwerken, die een berichtverwerkingscyclus creëert, en Handler, die berichten in de wachtrij van deze Looper plaatst.

Om een bericht in de hoofdthread te krijgen:

  1. In de hoofdthread wordt Looper.getMainLooper() aangeroepen, dat de Looper van de hoofdthread retourneert.
  2. Er wordt een Handler gemaakt die aan deze Looper is gekoppeld:
Handler handler = new Handler(Looper.getMainLooper()) {
    @Override
    public void handleMessage(Message msg) {
        // Verwerking van het bericht in de hoofdthread
    }
};
  1. Berichten of Runnable-objecten kunnen naar deze Handler worden gestuurd, en ze worden in de hoofdthread verwerkt.

Op deze manier zorgen Handler en Looper voor een mechanisme van berichtwachtrij en verwerking in de hoofdthread, waardoor het veilig is om de UI bij te werken vanuit andere threads.