Sobes.tech
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() alebo job.cancelAndJoin() umožňuje zastaviť vykonávanie korutiny.
  • Struktúrovaná konkurencia: Job je prvok hierarchie korutín. Zrušenie rodičovského Job spôsobí zrušenie všetkých dcérskych Job.
  • Čakanie na dokončenie: job.join() núti aktuálnu korutinu čakať na dokončenie inej korutiny reprezentovanej týmto Job.
  • Spracovanie výnimiek: Nezpracované výnimky v dcérskej korutíne s Job sa šíria nahor v hierarchii Job a môžu byť zachytené špeciálnymi spracovateľmi (napríklad CoroutineExceptionHandler).

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á")
    }
}