Sobes.tech
Junior — Middle

Ako implementovať funkciu, ktorá súčasne načítava údaje z dvoch rôznych zdrojov asynchrónne?

sobes.tech AI

Odpoveď od AI

Na asynchrónne načítanie dát z dvoch rôznych zdrojov v Android môžete použiť Kotlin Coroutines. To umožní spustiť dve operácie paralelne a počkať na ich dokončenie.

Príklad:

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) {
            // Spracovanie výsledkov na hlavnom vlákne
            println("Výsledok 1: $result1")
            println("Výsledok 2: $result2")
        }
    }
}

suspend fun loadFromSource1(): String {
    // Simulácia načítania dát
    delay(1000)
    return "Dáta zo zdroja 1"
}

suspend fun loadFromSource2(): String {
    // Simulácia načítania dát
    delay(1500)
    return "Dáta zo zdroja 2"
}

V tomto príklade sú dve funkcie načítania spustené paralelne a výsledky sú spracované po ich dokončení.