Sobes.tech
Middle

Androidда Job объектисин эмне үчүн колдонулат?

sobes.tech AI

AIден жооп

Kotlin Coroutines'те Job корутиндардын жашоо циклин башкаруу жана аларды жокко чыгуу үчүн колдонулат.

Негизги колдонмолору:

  • Жашоо циклин башкаруу: Корутиндин абалын (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("Корутин жокко чыгарылды")
    }
}