Junior — Middle
Kako implementirati funkciju koja istovremeno asinhrono učitava podatke iz dva različita izvora?
sobes.tech АИ
Одговор од АИ
За асинхронно учитавање података из два различита извора на 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"
}
У овом примеру, две функције за учитавање се покрећу паралелно, а резултати се обрађују након њиховог завршетка.