Junior — Middle
Ako implementovať dispatcher, ktorý funguje v jednom vlákne?
sobes.tech AI
Odpoveď od AI
V Androidu môžete na implementáciu dispatchera (dispečera), ktorý pracuje v režime jedného vlákna, použiť triedu Handler s Looper, ktorý je viazaný na jedno vlákno. Zvyčajne je to hlavné (UI) vlákno, ale môžete si vytvoriť aj vlastné vlákno s vlastným Looper.
Príklad vytvorenia jednovláknového dispatchera:
// Vytvoríme vlákno s Looperom
val handlerThread = HandlerThread("MySingleThreadDispatcher")
handlerThread.start()
// Vytvoríme Handler, ktorý je s týmto vláknom spojený
val handler = Handler(handlerThread.looper)
// Odoslanie úloh na vykonanie v režime jedného vlákna
handler.post {
// Kód, ktorý bude vykonaný v tomto vlákne
}
Týmto spôsobom budú všetky úlohy odoslané cez tento handler vykonávané sekvenčne v jednom vlákne, čím sa zabezpečí jednovláknový dispatcher.