ANR 이란 무엇인가?
Application Not Responding의 약자로 , 어플리케이션이 응답하지 않는 경우 안드로이드 시스템에서 보여주는 에러이다. 메인 스레드(일명, UI 스레드)가 일정시간 동안 잡혀 있으면 발생한다.
언제 ANR이 발생하는가?
터치를 통한 사용자 입력이 5초 내에 처리되지 않았을 때
브로드캐스트가 10초 내에 처리되지 않았을 때
서비스가 20초 내로 처리되지 않았을 때
왜 ANR이 발생하는가?
앱이 무한 루프에 빠지거나 OOM이 나야 ANR이 발생하는게 아니다. 시간이 좀 걸리는 처리를 해도 충분이 ANR이 발생할 수 있다.
ANR이 발생하지 않도록 하려면..?
시간이 오래 걸리는 작업은 스레드를 통해 처리한다.
사용자에게 프로그레스바 등을 이용해 진행 과정을 안내해 기다리도록한다.
'웹 개발 > 안드로이드' 카테고리의 다른 글
Parcelable (0) | 2017.04.08 |
---|---|
Intent (0) | 2017.03.18 |
SurfaceView 와 SurfaceHolder (0) | 2017.03.14 |
Inflate (0) | 2017.03.13 |
could not install *smartsocket* listener:cannot bind to .. (0) | 2017.03.09 |