Middle
Na čo sa používa objekt Job v Android?
sobes.tech AI
Odpoveď od AI
Job v Kotlin Coroutines sa používa na správu životného cyklu a zrušenie korutín.
Hlavné použitia:
- Správa životného cyklu: Umožňuje sledovať stav korutiny (Active, Completing, Completed, Cancelling, Cancelled, New).
- Zrušenie korutiny: Volanie
job.cancel()alebojob.cancelAndJoin()umožňuje zastaviť vykonávanie korutiny. - Struktúrovaná konkurencia:
Jobje prvok hierarchie korutín. Zrušenie rodičovskéhoJobspôsobí zrušenie všetkých dcérskychJob. - Čakanie na dokončenie:
job.join()núti aktuálnu korutinu čakať na dokončenie inej korutiny reprezentovanej týmtoJob. - Spracovanie výnimiek: Nezpracované výnimky v dcérskej korutíne s
Jobsa šíria nahor v hierarchiiJoba môžu byť zachytené špeciálnymi spracovateľmi (napríkladCoroutineExceptionHandler).
Príklad použitia na spustenie a zrušenie:
fun startAndCancelCoroutine() {
// CoroutineScope možno získať z ViewModel, Activity, Fragment atď.
val scope = CoroutineScope(Dispatchers.IO)
val job: Job = scope.launch {
// Dlhé výpočty
delay(5000)
println("Korutina dokončená")
}
// Zrušiť korutinu po 2 sekundách
scope.launch {
delay(2000)
job.cancel()
println("Korutina zrušená")
}
}