Junior — Middle
Kaip įgyvendinti funkciją, kuri vienu metu asinchroniškai įkelia du skirtingus šaltinius?
sobes.tech AI
Atsakymas iš AI
Norint asinchroniškai įkelti duomenis iš dviejų skirtingų šaltinių Android platformoje, galite naudoti Kotlin Coroutines. Tai leis vykdyti dvi operacijas paraleliai ir laukti jų užbaigimo.
Pavyzdys:
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) {
// Rezultatų apdorojimas pagrindiniame sraute
println("Rezultatas 1: $result1")
println("Rezultatas 2: $result2")
}
}
}
suspend fun loadFromSource1(): String {
// Duomenų įkėlimo simuliacija
delay(1000)
return "Šaltinio 1 duomenys"
}
suspend fun loadFromSource2(): String {
// Duomenų įkėlimo simuliacija
delay(1500)
return "Šaltinio 2 duomenys"
}
Šiame pavyzdyje dvi įkėlimo funkcijos vykdomos paraleliai, o jų rezultatai apdorojami po jų užbaigimo.