Sobes.tech
Junior — Middle

Hoe implementeer je een functie die gelijktijdig gegevens uit twee verschillende bronnen asynchroon laadt?

sobes.tech AI

Antwoord van AI

Om gegevens van twee verschillende bronnen asynchroon te laden op Android, kun je Kotlin Coroutines gebruiken. Dit stelt je in staat om twee operaties parallel uit te voeren en te wachten tot ze allebei voltooid zijn.

Voorbeeld:

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) {
            // Verwerking van resultaten op de hoofdthread
            println("Resultaat 1: $result1")
            println("Resultaat 2: $result2")
        }
    }
}

suspend fun loadFromSource1(): String {
    // Simulatie van gegevensladen
    delay(1000)
    return "Gegevens uit bron 1"
}

suspend fun loadFromSource2(): String {
    // Simulatie van gegevensladen
    delay(1500)
    return "Gegevens uit bron 2"
}

In dit voorbeeld worden twee laadfuncties parallel gestart, en worden de resultaten verwerkt nadat ze voltooid zijn.