본문 바로가기
Android

[안드로이드] ANR

by Sky Titan 2020. 8. 22.
728x90
 

ANR  |  Android 개발자  |  Android Developers

Android 앱의 UI 스레드가 너무 오랫동안 차단되면 'ANR(애플리케이션 응답 없음)' 오류가 트리거됩니다. 앱이 포그라운드에 있으면 그림 1에서와 같이 시스템에서 사용자에게 대화상자를 표시합니�

developer.android.com

ANR

  • UI  스레드가 너무 오랫동안 차단되면 'ANR (애플리케이션 응답 없음)' 오류가 트리거 된다.
  • UI 스레드가 5초 이상 응답이 없으면 발생

 

원인

  1. 메인 스레드에서 I/O와 관련된 느린 작업 실행하는 경우
  2. 메인 스레드에서 긴 계산을 실행 중인 경우
  3. 메인 스레드에서 다른 프로세스에 관한 동기 바인더 호출을 실행 중이고 다른 프로세스가 반환하는데 시간이 오래 걸리는 경우
  4. 다른 스레드에서 발생하는 긴 작업을 위해 동기화된 블록을 대기하는 동안 메인 스레드가 차단됨

 

이러한 이유로
파일 I/O, 네트워크 조회, 데이터베이스 트랜잭션, 복잡한 계산 등의 지속 실행 작업은 반드시 백그라운드 작업 스레드로 실행
되어야 함.

 

728x90

댓글