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"
}
В този пример две функции за зареждане се стартират паралелно, а резултатите се обработват след тяхното завършване.