Sobes.tech
Middle

Ի՞նչ նպատակով է օգտագործվում Job օբյեկտը Android-ում։

sobes.tech AI

Պատասխան AI-ից

Job Kotlin Coroutines- ում օգտագործվում է կյանքի ցիկլի կառավարում և korutin-ների չեղարկում։

Հիմնական կիրառումները՝

  • Կյանքի ցիկլի կառավարում: թույլ է տալիս հետևել korutinas-ի վիճակին (Active, Completing, Completed, Cancelling, Cancelled, New):
  • Korutinas-ի չեղարկում: job.cancel() կամ job.cancelAndJoin() կանչերը թույլ են տալիս կանգնեցնել korutinas-ի կատարմանը:
  • Կառուցված մրցակցություն: Job-ը korutin-ների հիերարխիայի տարր է։ Հայրական Job-ի չեղարկումը հանգեցնում է բոլոր երեխաների Job-ների չեղարկմանը:
  • Ավարտի սպասում: job.join()-ը ստիպում է ընթացիկ korutina- ին սպասել այս Job-ով ներկայացված այլ korutina- ի ավարտին:
  • Անհատականության մշակումը: Չշահագործված արտահայտությունները երեխաների korutinas- ում Job-ով բարձրանում են Job-ի հիերարխիայում և կարող են բռնվել հատուկ մշակողներով (օրինակ, CoroutineExceptionHandler):

Օգտագործման օրինակ՝ սկսելու և չեղարկելու համար:

fun startAndCancelCoroutine() {
    // CoroutineScope- ը կարելի է ստանալ ViewModel, Activity, Fragment և այլն:
    val scope = CoroutineScope(Dispatchers.IO)

    val job: Job = scope.launch {
        // Ուժեղ հաշվարկներ
        delay(5000)
        println("Korutina ավարտվեց")
    }

    // 2 վայրկյանից հետո korutina- ն չեղարկեք
    scope.launch {
        delay(2000)
        job.cancel()
        println("Korutina չեղարկվեց")
    }
}