Junior — Middle
O thread principal pode fazer solicitações de rede sem causar bloqueios ou problemas de desempenho?
sobes.tech IA
Resposta da IA
No Android, o thread principal (UI) não deve fazer solicitações de rede diretamente, pois isso causa bloqueios na interface e prejudica o desempenho do aplicativo. Operações de rede podem levar um tempo considerável, e se forem feitas no thread principal, o aplicativo deixará de responder às ações do usuário.
Para evitar bloqueios, usam-se:
- Tarefas assíncronas (AsyncTask, embora agora obsoletas)
- Threads (Thread, HandlerThread)
- Bibliotecas com suporte à assíncronia (por exemplo, Retrofit com Coroutines)
- Kotlin Coroutines ou RxJava
Exemplo com Kotlin Coroutines:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Executar requisição de rede em segundo plano
fetchDataFromNetwork()
}
// Atualizar a UI com o resultado
updateUI(result)
}
Dessa forma, o thread principal não é bloqueado e o aplicativo permanece responsivo.