Sobes.tech
Middle

Android-də Job obyekti nə üçün istifadə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

Kotlin Coroutines-də Job, həyat dövrünü idarə etmək və korutinaları ləğv etmək üçün istifadə olunur.

Əsas tətbiqlər:

  • Həyat dövrünün idarə olunması: Korutinanın vəziyyətini (Active, Completing, Completed, Cancelling, Cancelled, New) izləməyə imkan verir.
  • Korutinanı ləğv etmək: job.cancel() və ya job.cancelAndJoin() çağırışları korutinanın icrasını dayandırmağa imkan verir.
  • Strukturlu müstəqil işləmə: Job korutinlərin hierarxiyasının elementidir. Valideyn Job-in ləğvi bütün uşaqlar Job-larının ləğvinə səbəb olur.
  • Bitməsini gözləmək: job.join() cari korutinanın bu Job ilə təmsil olunan digər korutinanın tamamlanmasını gözləməsinə səbəb olur.
  • İstisna ilə işləmə: Job ilə uşaq korutinasında işlənməmiş istisnalar Job-in hierarxiyasında yuxarıya doğru yayılır və xüsusi işləyicilər (məsələn, CoroutineExceptionHandler) tərəfindən tutulə bilər.

İstifadə nümunəsi başlatmaq və ləğv etmək üçün:

fun startAndCancelCoroutine() {
    // CoroutineScope ViewModel, Activity, Fragment və s.-dən əldə edilə bilər.
    val scope = CoroutineScope(Dispatchers.IO)

    val job: Job = scope.launch {
        // Uzun hesablama
        delay(5000)
        println("Korutina tamamlandı")
    }

    // 2 saniyə sonra korutinanı ləğv et
    scope.launch {
        delay(2000)
        job.cancel()
        println("Korutina ləğv edildi")
    }
}