Junior — Middle
Jak implementovat funkci, která současně asynchronně načítá data ze dvou různých zdrojů?
sobes.tech AI
Odpověď od AI
Pro asynchronní načítání dat ze dvou různých zdrojů v Androidu můžete použít Kotlin Coroutines. To umožní spustit dvě operace paralelně a počkat na jejich dokončení.
Pří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) {
// Zpracování výsledků na hlavním vlákně
println("Výsledek 1: $result1")
println("Výsledek 2: $result2")
}
}
}
suspend fun loadFromSource1(): String {
// Simulace načítání dat
delay(1000)
return "Data ze zdroje 1"
}
suspend fun loadFromSource2(): String {
// Simulace načítání dat
delay(1500)
return "Data ze zdroje 2"
}
V tomto příkladu jsou dvě načítací funkce spuštěny paralelně a výsledky jsou zpracovány po jejich dokončení.