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.