Sobes.tech
Junior — Middle

Como organizar a execução de cinco solicitações simultâneas aos diretórios e obter todos os resultados antes de terminar o método?

sobes.tech IA

Resposta da IA

Para realizar cinco consultas simultâneas a diretórios no Android, pode usar Kotlin Coroutines com a função async para iniciar em paralelo e awaitAll para aguardar todos os resultados. Isto permite lançar as consultas ao mesmo tempo e esperar que terminem antes de continuar.

Exemplo:

import kotlinx.coroutines.*

suspend fun fetchAllDirectories(): List<ResultType> = coroutineScope {
    val deferredList = listOf(
        async { fetchDirectory1() },
        async { fetchDirectory2() },
        async { fetchDirectory3() },
        async { fetchDirectory4() },
        async { fetchDirectory5() }
    )
    deferredList.awaitAll() // Espera pela conclusão de todas as requisições e obtém os resultados
}

suspend fun fetchDirectory1(): ResultType {
    // implementação da requisição
}
// De forma semelhante para outros fetchDirectoryN

Esta abordagem é eficiente e não bloqueia a thread principal, o que é importante para aplicações Android.