1. ANR - Application Not Responding : 어플리케이션 응답 없음
2. 발생 이유
1) 5초 이상 사용자의 입력에 반응하지 않을 때
(UI스레드에 어떠한 I/O명령으로 인해 막힐 때)
2) 브로드캐스트 리시버가 10초 이내로 리턴하지 않을 때
예)
1) Input 이벤트에 5초 안에 반응하지 않을 때
2) 브로드캐스트 리시버가 10초 이내 실행 끝내지 않을 때
위 상황의 경우 OS가 관여하여 ANR 창을 띄움
(Main Thread가 일정 시간 Task에 잡혀있을때 발생)
3.ANR 피하기
Main Thread에서 실행되는 method는 최소한의 일을 하도록 해야한
특히 onCreate(), onResume()같은 핵심 생명주기에서는 작은 일을 수행
1) 네트워크, DB같은 길게 실행될 가능성 있는 작업
2) 비트맵 크기 조정하는 계산이 필요한 작업
-> Thread 생성해서 처리한다.
4. ANR의 필요성
안드로이드 OS를 사용하는 단말기는 대부분 작은 화면에 터치를 이용
-> 빠른 응답을 얻어 내는 일을 함.
'안드로이드' 카테고리의 다른 글
[안드로이드] DP와 SP (0) | 2019.11.21 |
---|---|
안드로이드 웹뷰 URL 호출시 에러 ERR_CLEARTEXT_NOT_PERMITTED (0) | 2019.11.04 |
안드로이드 AsyncTask 예제 1 (0) | 2019.10.07 |
안드로이드 개발자 이직 면접(공유링크) (0) | 2019.09.23 |