Junior — Middle
Екі түрлі дереккөзден асинхронды түрде деректерді бір уақытта жүктейтін функцияны қалай жүзеге асыруға болады?
sobes.tech AI
AI-дан жауап
Android-те екі түрлі дереккөзден асинхронды деректерді жүктеу үшін Kotlin Coroutines қолдануға болады. Бұл екі операцияны параллель жүргізуге және олардың аяқталуын күтуді қамтамасыз етеді.
Мысал:
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) {
// Нәтижелерді негізгі ағында өңдеу
println("Нәтиже 1: $result1")
println("Нәтиже 2: $result2")
}
}
}
suspend fun loadFromSource1(): String {
// Деректерді жүктеуді имитациялау
delay(1000)
return "Деректер көзінен 1"
}
suspend fun loadFromSource2(): String {
// Деректерді жүктеуді имитациялау
delay(1500)
return "Деректер көзінен 2"
}
Бұл мысалда екі жүктеу функциясы параллель іске қосылады, ал олардың нәтижелері аяқталғаннан кейін өңделеді.