Sobes.tech
Middle

Androidda Job obyekti nima uchun ishlatiladi?

sobes.tech AI

AIdan javob

Kotlin Coroutines'da Job, hayot tsiklini boshqarish va korutinalarni bekor qilish uchun ishlatiladi.

Asosiy qo'llanmalari:

  • Hayot tsiklini boshqarish: Korutinaning holatini (Active, Completing, Completed, Cancelling, Cancelled, New) kuzatishga imkon beradi.
  • Korutina bekor qilish: job.cancel() yoki job.cancelAndJoin() chaqiruvi korutinaning bajarilishini to'xtatishga imkon beradi.
  • Struktural konkurentlik: Job korutinlar hierarhiyasining elementidir. Otaning Job'ini bekor qilish barcha bolalar Job'larini bekor qilishga olib keladi.
  • Yakunlashni kutish: job.join() joriy korutinaning bu Job bilan ifodalangan boshqa korutinaning yakunlanishini kutishini ta'minlaydi.
  • Istisno bilan ishlash: Job bilan bolalar korutinasida ishlov berilmagan istisnolar Job hierarxiyasida yuqoriga tarqaladi va maxsus ishlovchilar (masalan, CoroutineExceptionHandler) tomonidan ushlanishi mumkin.

Foydalanish misoli boshlash va bekor qilish:

fun startAndCancelCoroutine() {
    // CoroutineScope ViewModel, Activity, Fragment va boshqalardan olinishi mumkin.
    val scope = CoroutineScope(Dispatchers.IO)

    val job: Job = scope.launch {
        // Uzun hisoblashlar
        delay(5000)
        println("Korutina tugadi")
    }

    // 2 sekunddan so'ng korutini bekor qilish
    scope.launch {
        delay(2000)
        job.cancel()
        println("Korutina bekor qilindi")
    }
}