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.