Sobes.tech
Junior — Middle

Екі түрлі дереккөзден асинхронды түрде деректерді бір уақытта жүктейтін функцияны қалай жүзеге асыруға болады?

sobes.tech AI

AI-дан жауап

Android-те екі түрлі дереккөзден асинхронды деректерді жүктеу үшін Kotlin Coroutines қолдануға болады. Бұл екі операцияны параллель жүргізуге және олардың аяқталуын күтуді қамтамасыз етеді.

Мысал:

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) {
            // Нәтижелерді негізгі ағында өңдеу
            println("Нәтиже 1: $result1")
            println("Нәтиже 2: $result2")
        }
    }
}

suspend fun loadFromSource1(): String {
    // Деректерді жүктеуді имитациялау
    delay(1000)
    return "Деректер көзінен 1"
}

suspend fun loadFromSource2(): String {
    // Деректерді жүктеуді имитациялау
    delay(1500)
    return "Деректер көзінен 2"
}

Бұл мысалда екі жүктеу функциясы параллель іске қосылады, ал олардың нәтижелері аяқталғаннан кейін өңделеді.