Sobes.tech
Junior — Middle

Como implementar uma função que carrega dados de duas fontes diferentes de forma assíncrona ao mesmo tempo?

sobes.tech IA

Resposta da IA

Para carregar dados de duas fontes diferentes de forma assíncrona no Android, pode usar Kotlin Coroutines. Isto permitirá executar duas operações em paralelo e aguardar a sua conclusão.

Exemplo:

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) {
            // Processamento dos resultados no thread principal
            println("Resultado 1: $result1")
            println("Resultado 2: $result2")
        }
    }
}

suspend fun loadFromSource1(): String {
    // Simulação de carregamento de dados
    delay(1000)
    return "Dados da fonte 1"
}

suspend fun loadFromSource2(): String {
    // Simulação de carregamento de dados
    delay(1500)
    return "Dados da fonte 2"
}

Neste exemplo, duas funções de carregamento são iniciadas em paralelo, e os resultados são processados após a sua conclusão.