Middle
K čemu slouží objekt Job v Androidu?
sobes.tech AI
Odpověď od AI
Job v Kotlin Coroutines se používá k řízení životního cyklu a zrušení korutin.
Hlavní použití:
- Řízení životního cyklu: Umožňuje sledovat stav korutiny (Active, Completing, Completed, Cancelling, Cancelled, New).
- Zrušení korutiny: Volání
job.cancel()nebojob.cancelAndJoin()umožňuje zastavit provádění korutiny. - Strukturovaná konkurence:
Jobje prvek hierarchie korutin. Zrušení nadřazenéhoJobzpůsobí zrušení všech podřízenýchJob. - Čekání na dokončení:
job.join()nutí aktuální korutinu čekat na dokončení jiné korutiny reprezentované tímtoJob. - Zpracování výjimek: Nezpracované výjimky v dětské korutině s
Jobse šíří vzhůru hierarchiíJoba mohou být zachyceny speciálními zpracovateli (napříkladCoroutineExceptionHandler).
Příklad použití pro spuštění a zrušení:
fun startAndCancelCoroutine() {
// CoroutineScope lze získat z ViewModel, Activity, Fragment atd.
val scope = CoroutineScope(Dispatchers.IO)
val job: Job = scope.launch {
// Dlouhé výpočty
delay(5000)
println("Korutina dokončena")
}
// Zrušení korutiny po 2 sekundách
scope.launch {
delay(2000)
job.cancel()
println("Korutina zrušena")
}
}