출처 : https://developer.android.com/training/articles/perf-anr#anr
- Application Not Responding : 애플리케이션이 응답하지 않습니다.
- ANR 발생 원인
- 메인 스레드에 어떠한 I/O 명령으로 5초 이상 앱이 멈출 때
- BroadcastReceiver가 10초 이내로 리턴하지 않을 때
예방법
네트워크, DB등의 길게 실행될 가능성이 있는 작업은 Thread를 생성
또는 유저에게 Loading Bar를 보여주어 작업 진행 과정을 안내한다.
실제 Android Studio에서 Firebase의 Realtime Database를 불러오는 과정중에 데이터 반환값이 null이 나오는 현상이 발생했다.
데이터를 받아오지 않은 채 데이터를 사용하는 코드를 작성했기 때문-> Handler를 이용해서 postdelayed를 준 뒤에 실행하도록 해서 해결