Sobes.tech
Junior — Middle

Come implementare una funzione che carica contemporaneamente dati da due fonti diverse in modo asincrono?

sobes.tech AI

Risposta dell'AI

Per caricare dati da due fonti diverse in modo asincrono su Android, puoi usare Kotlin Coroutines. Questo permette di eseguire due operazioni in parallelo e attendere che entrambe siano completate.

Esempio:

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) {
            // Elaborazione dei risultati nel thread principale
            println("Risultato 1: $result1")
            println("Risultato 2: $result2")
        }
    }
}

suspend fun loadFromSource1(): String {
    // Simulazione di caricamento dati
    delay(1000)
    return "Dati dalla fonte 1"
}

suspend fun loadFromSource2(): String {
    // Simulazione di caricamento dati
    delay(1500)
    return "Dati dalla fonte 2"
}

In questo esempio, due funzioni di caricamento vengono avviate in parallelo, e i risultati vengono elaborati dopo il loro completamento.