Junior — Middle
Kuidas rakendada funktsiooni, mis samaaegselt laadib andmeid kahest erinevast allikast asünkroonselt?
sobes.tech AI
Vastus AI-lt
Androidis kahe erineva allika andmete asünkroonseks laadimiseks saate kasutada Kotlin Coroutines-i. See võimaldab käivitada kaks operatsiooni paralleelselt ja oodata nende lõpetamist.
Näide:
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) {
// Tulemuste töötlemine peamisel lõngal
println("Tulemus 1: $result1")
println("Tulemus 2: $result2")
}
}
}
suspend fun loadFromSource1(): String {
// Andmete laadimise simulatsioon
delay(1000)
return "Allikast 1"
}
suspend fun loadFromSource2(): String {
// Andmete laadimise simulatsioon
delay(1500)
return "Allikast 2"
}
Selles näites käivitatakse kaks laadimisfunktsiooni paralleelselt ning nende tulemused töödeldakse pärast nende lõpetamist.