A default execution for our application is performed on the main application thread. This execution must be performant! If it happens that something is performing too long, then we get ANR--an Android application not responding message. To avoid ANRs, we run our code in the background. Android provides mechanisms so we can do that efficiently. Running operations asynchronously gives not just good performance, but great user experience.
Introduction to Android concurrency
Main thread
All user interface updates are performed from one thread. This is the main thread. All events are collected in a queue and processed by the Looper class instance.
The following image explains the relationship between classes involved:
It is important...