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.