Sobes.tech
Junior — Middle

Pode explicar o que significa o termo ANR no contexto de aplicações móveis e como combatê-lo?

sobes.tech IA

Resposta da IA

ANR (Aplicação Não Responde) é uma situação numa aplicação Android em que a interface de utilizador deixa de responder às ações do utilizador por mais de 5 segundos. Isto acontece se o thread principal (UI thread) estiver ocupado com uma operação prolongada e não conseguir processar eventos.

Para combater o ANR:

  • Transferir operações pesadas (rede, base de dados, cálculos) para um thread de fundo (por exemplo, usando AsyncTask, Coroutines, Thread).
  • Utilizar algoritmos otimizados e minimizar o tempo de trabalho no thread UI.
  • Monitorizar os logs e usar ferramentas de profiling para identificar gargalos.

Exemplo de uso de Kotlin Coroutines para trabalho em segundo plano:

GlobalScope.launch(Dispatchers.IO) {
    val data = loadDataFromNetwork()
    withContext(Dispatchers.Main) {
        updateUI(data)
    }
}