Sobes.tech
Junior — Middle

Hogyan valósítható meg egy olyan függvény, amely egyszerre tölti be aszinkron módon két különböző forrásból az adatokat?

sobes.tech MI

Válasz az MI-től

Az Androidon két különböző forrásból származó adatok aszinkron betöltéséhez használhatod a Kotlin Coroutines-t. Ez lehetővé teszi két művelet párhuzamos futtatását és azok befejezésének várását.

Példa:

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) {
            // Eredmények feldolgozása a fő szálon
            println("Eredmény 1: $result1")
            println("Eredmény 2: $result2")
        }
    }
}

suspend fun loadFromSource1(): String {
    // Adatok betöltésének szimulációja
    delay(1000)
    return "Adatok forrás 1-ből"
}

suspend fun loadFromSource2(): String {
    // Adatok betöltésének szimulációja
    delay(1500)
    return "Adatok forrás 2-ből"
}

Ebben a példában két betöltési funkció párhuzamosan indul, és az eredmények feldolgozása azok befejezése után történik.