Sobes.tech
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() nebo job.cancelAndJoin() umožňuje zastavit provádění korutiny.
  • Strukturovaná konkurence: Job je prvek hierarchie korutin. Zrušení nadřazeného Job způsobí zrušení všech podřízených Job.
  • Čekání na dokončení: job.join() nutí aktuální korutinu čekat na dokončení jiné korutiny reprezentované tímto Job.
  • Zpracování výjimek: Nezpracované výjimky v dětské korutině s Job se šíří vzhůru hierarchií Job a mohou být zachyceny speciálními zpracovateli (například CoroutineExceptionHandler).

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