Sobes.tech
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.