Sobes.tech
Junior — Middle

Hogyan valósítható meg egy olyan diszpécser, amely egyszálas módban működik?

sobes.tech MI

Válasz az MI-től

Androidben egy olyan diszpécsert (Dispatcher) valósíthatsz meg, amely egy szálon működik, a Handler osztályt használva, Looper-rel, amely egyetlen szálhoz van kötve. Általában ez a fő (UI) szál, de létrehozhatsz saját szálat is saját Looper-rel.

Példa egy egy szálon működő diszpécser létrehozására:

// Szál létrehozása Looper-rel
val handlerThread = HandlerThread("MySingleThreadDispatcher")
handlerThread.start()

// Handler létrehozása ehhez a szálhoz
val handler = Handler(handlerThread.looper)

// Feladatok küldése végrehajtásra egy szálon
handler.post {
    // Kód, amely ebben a szálban fog végrehajtódni
}

Így minden, ezen handler-en keresztül küldött feladat sorban fog végrehajtódni egyetlen szálon, biztosítva az egy szálon működő diszpécsert.