Junior — Middle
Como garantir que as operações sejam executadas de forma a não bloquear a interface do utilizador?
sobes.tech IA
Resposta da IA
Para que as operações não bloqueiem a interface do utilizador no Android, é necessário executá-las numa thread de fundo, não na thread principal (UI). Para isso, pode usar:
- AsyncTask (obsoleto, mas ainda presente em código antigo)
- HandlerThread ou Handler
- ExecutorService
- Corutinas Kotlin (método moderno e recomendado)
- RxJava
Por exemplo, com corutinas, pode fazer assim:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Operação longa, por exemplo, uma requisição de rede
fetchData()
}
// Atualização da UI com o resultado
textView.text = result
}
Desta forma, o trabalho pesado é realizado numa thread de fundo (IO), e a atualização da interface ocorre na thread principal.