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"
}

Այս օրինակով, երկու բեռնումային ֆունկցիաներ սկսվում են միաժամանակ, և արդյունքները մշակվում են դրանց ավարտից հետո։