ANR stands for A pplication Not Responding.
Android
systems shows this dialog, if application is performing too much of
task on main thread and been unresponsive for a long period of time.
ANR
is not exactly an error.It is shown when your application is very
sluggish and takes a lot of time to respond making the user wait.The
user won't appreciate if your application makes him wait for a long time
so the android framework gives the user an option of closing your
application.
This
occurs when you are doing long running operations on the main thread
and the system can't process user interactions during this period since
the main thread is blocked.The solution is to do the heavy operations in
a worker thread and keep the main thread free.
An
ANR will occur if you are running a process on the UI thread which
takes a long time, usually around 5 seconds. During this time the GUI
(Graphical User Interface) will lock up which will result in anything
the user presses will not be actioned. After the 5 seconds approx has
occurred, if the thread still hasn't recovered then an ANR dialogue box
is shown informing the user that the application is not responding and
will give the user the choice to either wait, in the hope that the app
will eventually recover, or to force close the app.
ANR in application is annoying to user. It can be caused due to various reasons. Below are some of the tips to avoid ANR
- Perform all you long running network or database operation in separate thread
- If you have too much of background tasks, then take it off the UI thread. You may use IntentService
- Server not responding for longer period can be guilt for ANR. To avoid always define HTTP time out for your all your webs service calls.
- Be watchful of infinite loops during your complex calculations
No comments:
Post a Comment