Junior — Middle
O que acontece se fizer uma requisição de rede no thread principal do programa?
sobes.tech IA
Resposta da IA
Se fizer uma solicitação de rede no thread principal (UI) de uma aplicação Android, isso levará ao bloqueio da interface do usuário até a conclusão da solicitação. Como resultado, a aplicação deixará de responder às ações do usuário, o que pode causar um ANR (Aplicação Não Responde), um aviso do sistema sobre uma congelamento.
Portanto, operações de rede devem ser realizadas em um thread de fundo, por exemplo, usando AsyncTask, Thread, Coroutine ou bibliotecas como Retrofit com suporte à assíncronia.
Exemplo com Kotlin Coroutine:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// solicitação de rede
}
// atualização da UI com o resultado
}