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

+ Recent posts