ANR (Application Not Responding)
What is ANR (Application Not Responding)?
ANR (Application Not Responding) is an Android-specific failure mode where the system detects the app's main thread has been blocked and presents the user with a 'Wait' / 'Close app' dialog. Google Play Console surfaces ANR rates and stack traces, and counts them against your app's vitals score, a high ANR rate triggers placement penalties in search and store rankings. ANRs most commonly originate from synchronous I/O on the main thread (SharedPreferences reads, database queries via Room without coroutines), long-running broadcast receivers, or deadlocks in background thread pools. Android's StrictMode can detect ANR-prone patterns during development.
Related terms
ANR (Application Not Responding), frequently asked questions
An ANR is triggered when the main (UI) thread is blocked for more than 5 seconds during a user input event, or more than 10 seconds during a broadcast receiver. Common causes: synchronous database access, synchronous network calls, long-running computations on the UI thread, and inter-process communication (IPC) timeouts.
Use Android StrictMode in debug builds to detect disk and network operations on the main thread. Enable ANR tracing in your CI pipeline with Firebase Test Lab or Monkey. Review ANR traces in Android Studio's Profiler. The Strict Mode DiskReadViolation and NetworkViolation policies catch the most common causes at development time.
Google Play's Android vitals system marks apps as 'bad behavior' if their ANR rate exceeds 0.47% of daily sessions. Apps that exceed the bad behavior threshold receive reduced prominence in search results and may display a warning on their store listing. Google recommends keeping ANR rate below 0.20% for optimal placement.