Sobes.tech
Junior — Middle

Ikki xil manbadan ma'lumotlarni bir vaqtning o'zida asinxron tarzda yuklaydigan funksiyani qanday amalga oshirish mumkin?

sobes.tech AI

AIdan javob

Androidda ikki turli manbadan ma'lumotlarni asinxron tarzda yuklash uchun Kotlin Coroutines-dan foydalanishingiz mumkin. Bu ikki operatsiyani parallel ravishda ishga tushirish va ularning yakunlanishini kutish imkonini beradi.

Misol:

import kotlinx.coroutines.*

fun loadData() {
    CoroutineScope(Dispatchers.IO).launch {
        val deferred1 = async { loadFromSource1() }
        val deferred2 = async { loadFromSource2() }

        val result1 = deferred1.await()
        val result2 = deferred2.await()

        withContext(Dispatchers.Main) {
            // Natijalarni asosiy oqimda ishlash
            println("Natija 1: $result1")
            println("Natija 2: $result2")
        }
    }
}

suspend fun loadFromSource1(): String {
    // Ma'lumotlarni yuklashni simulyatsiya qilish
    delay(1000)
    return "Manbadan 1 ma'lumotlari"
}

suspend fun loadFromSource2(): String {
    // Ma'lumotlarni yuklashni simulyatsiya qilish
    delay(1500)
    return "Manbadan 2 ma'lumotlari"
}

Ushbu misolda, ikki yuklash funksiyasi parallel ravishda ishga tushiriladi va ularning yakunlanishi bilan natijalar ishlanadi.