Обложка канала

Android Broadcast

Качественная выборка Android Dev новостей, тезисы важных новостей и статей, личное мнение

Android Broadcast

8 лет назад
Открыть в
#ANR

Причины возникновения ANR и как этого избежать

Application Not Responding (ANR) - это ошибка, которая возникает в результате приложение не отвечает. Условия возникновения ANR:
👉События ввода (кнопки, касания экрана и пр.) не обрабатываются 5 секунд
👉BroadcastReceiver.onReceive() не был обработан за отведенное время (foreground приложение - 10 сек, background - 60 сек)
👉ContentProvider не завершил выполнение в течение 10 секунд

Как избежать ANR:
👉 Вся работа, несвязанная с отображение, должна выноситься в фоновые потоки
👉 Сложные вычисления производятся в отдельном потоке
👉 Используйте Handler для взаимодействия между Main/UI потоком приложения и рабочими потоками

Удобными способами для выполнения операций в фоне является использование библиотек RxJava или Kotlin Coroutines

В статье также описывается откуда прорастает показ ANR диалога и как он показывается