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õijob.cancelAndJoin()kutsed võimaldavad korutina täitmist peatada. - Struktureeritud konkurents:
Jobon korutinate hierarhia element. VanemaJobtühistamine põhjustab kõigi lasteJob-ide tühistamise. - Lõpule jõudmise ootamine:
job.join()sunnib jooksvat korutinat ootama teise korutina, mida seeJobesindab, 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äiteksCoroutineExceptionHandler).
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")
}
}