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.