1. Create a subclass of AsyncTask
2. Override one or more AsyncTask methods to accomplish the background
work,
plus whatever work associated with the task that needs to be done on
the UI thread (e.g., update progress)
3. When needed, create an instance of the AsyncTask subclass and call
execute() to have it begin doing its work