Junior — Middle
Jak zaimplementować funkcję, która jednocześnie asynchronicznie ładuje dane z dwóch różnych źródeł?
sobes.tech AI
Odpowiedź od AI
Aby asynchronicznie załadować dane z dwóch różnych źródeł w Androidzie, można użyć Kotlin Coroutines. To pozwoli uruchomić dwie operacje równocześnie i poczekać na ich zakończenie.
Przykład:
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) {
// Przetwarzanie wyników na głównym wątku
println("Wynik 1: $result1")
println("Wynik 2: $result2")
}
}
}
suspend fun loadFromSource1(): String {
// Symulacja ładowania danych
delay(1000)
return "Dane z źródła 1"
}
suspend fun loadFromSource2(): String {
// Symulacja ładowania danych
delay(1500)
return "Dane z źródła 2"
}
W tym przykładzie dwie funkcje ładowania uruchamiają się równolegle, a następnie wyniki są przetwarzane po ich zakończeniu.