Back to Glossary

ANR

ANR (Application Not Responding) is an Android system error that occurs when an app's main thread becomes blocked for too long, causing the system to display an error dialog.

ANR, or Application Not Responding, is an Android-specific error condition that occurs when an application’s main UI thread remains blocked for more than five seconds, preventing the app from responding to user input or system events. When Android detects an ANR, the system displays a dialog offering users the option to wait for the app to respond or force close it immediately, creating an extremely poor user experience that often leads to app uninstallation and negative reviews. ANRs differ from crashes because the app doesn’t terminate unexpectedly; instead, it becomes frozen and unresponsive while still running, typically due to long-running operations executing on the main thread.

Common ANR causes include performing network requests on the UI thread, executing complex database queries synchronously, reading large files without background threading, deadlocks between threads, or slow broadcast receiver operations that exceed time limits. Google Play Console tracks ANR rates as a critical quality metric, and apps with high ANR rates may face reduced visibility in search results or warnings on their store listings. Android’s StrictMode helps developers identify operations that risk causing ANRs during development by flagging disk reads, network access, and other slow operations performed on the main thread.

Preventing ANRs requires moving time-consuming work to background threads using WorkManager, Kotlin coroutines, AsyncTask, or thread executors, keeping UI thread work focused on immediate interface updates and user interaction handling, and implementing proper timeout handling for operations that might block indefinitely. Monitoring tools like Firebase Crashlytics and Play Console provide ANR reports with stack traces that reveal which code paths caused threading issues, enabling developers to identify and resolve responsiveness problems before they impact user satisfaction.

Want to learn more about app development?

Explore our complete glossary of 182 terms covering everything from mobile development to deployment.

Browse All Terms