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.