Sobes.tech
Middle

Milleks kasutatakse Androidis Job objekti?

sobes.tech AI

Vastus AI-lt

Job Kotlin Coroutines kasutatakse korutinate elutsükli haldamiseks ja nende tühistamiseks.

Peamised rakendused:

  • Elutsükli haldamine: võimaldab jälgida korutina olekut (Active, Completing, Completed, Cancelling, Cancelled, New).
  • Korutina tühistamine: job.cancel() või job.cancelAndJoin() kutsed võimaldavad korutina täitmist peatada.
  • Struktureeritud konkurents: Job on korutinate hierarhia element. Vanema Job tühistamine põhjustab kõigi laste Job-ide tühistamise.
  • Lõpule jõudmise ootamine: job.join() sunnib jooksvat korutinat ootama teise korutina, mida see Job esindab, lõpetamist.
  • Erandite töötlemine: Mitte töödeldud erandid lapse korutinas Job-iga levivad ülespoole hierarhias ja neid saab püüda spetsiaalsete töötlejatega (näiteks CoroutineExceptionHandler).

Näide kasutamiseks alustamiseks ja tühistamiseks:

fun startAndCancelCoroutine() {
    // CoroutineScope võib saada ViewModel, Activity, Fragment jms-ilt.
    val scope = CoroutineScope(Dispatchers.IO)

    val job: Job = scope.launch {
        // Pikk arvutustöö
        delay(5000)
        println("Korutina lõpetas")
    }

    // Tühista korutina 2 sekundiga
    scope.launch {
        delay(2000)
        job.cancel()
        println("Korutina tühistati")
    }
}