Middle
Объекти Job дар Android барои чӣ истифода мешавад?
sobes.tech AI
Ҷавоб аз AI
Job дар Kotlin Coroutines истифода мешавад барои идора кардани давраи ҳаёти корутин ва бекор кардани онҳо.
Барномаҳои асосӣ:
- Идоракунии давраи ҳаёт: имкон медиҳад, ки ҳолати корутинро пайгирӣ кунад (Active, Completing, Completed, Cancelling, Cancelled, New).
- Бекор кардани корутин: Звон кардани
job.cancel()ёjob.cancelAndJoin()имкон медиҳад, ки иҷрои корутинро боздорад. - Конкурентии сохторӣ:
Jobунсури ҳиерархияи корутинҳо мебошад. Бекор карданиJob-и падар ба бекор кардани ҳамаиJob-и кӯдакон оварда мерасонад. - Интизор шудан барои анҷом:
job.join()корутинро маҷбур мекунад, ки интизор шавад, то корутинҳои дигар, ки инJob-ро намояндагӣ мекунанд, ба анҷом расанд. - Ҳал кардани истисноҳо: Истисноҳои беҳалол дар корутинҳои кӯдакии бо
Jobпаҳн мешаванд ба боло дар ҳиерархияиJobва метавонанд бо истифода аз махсуси коркардкунандагон (масалан,CoroutineExceptionHandler) дастгирӣ шаванд.
Маслиҳат барои истифода барои оғоз ва бекор:
fun startAndCancelCoroutine() {
// CoroutineScope метавонад аз ViewModel, Activity, Fragment ва ғайра гирифта шавад.
val scope = CoroutineScope(Dispatchers.IO)
val job: Job = scope.launch {
// Ҳисобкунии дароз
delay(5000)
println("Корутин ба анҷом расид")
}
// Бекор кардани корутин пас аз 2 соат
scope.launch {
delay(2000)
job.cancel()
println("Корутин бекор шуд")
}
}