Назад к вопросам
Junior — Middle
66
Можно ли объяснить, что означает термин ANR в контексте мобильных приложений и как с ним бороться?
Компании, где спрашивали
SmartWay
Актив
Ответ от нейросети
sobes.tech AI
ANR (Application Not Responding) — это ситуация в Android-приложении, когда пользовательский интерфейс перестаёт отвечать на действия пользователя более чем 5 секунд. Это происходит, если главный поток (UI thread) занят длительной операцией и не может обработать события.
Чтобы бороться с ANR:
- Переносить тяжёлые операции (сеть, база данных, вычисления) в фоновый поток (например, с помощью AsyncTask, Coroutines, Thread).
- Использовать оптимизированные алгоритмы и минимизировать время работы в UI-потоке.
- Следить за логами и использовать инструменты профилирования для выявления узких мест.
Пример использования Kotlin Coroutines для фоновой работы:
GlobalScope.launch(Dispatchers.IO) {
val data = loadDataFromNetwork()
withContext(Dispatchers.Main) {
updateUI(data)
}
}