According to Android Documentation
“A Handler allows you to send and process Message and Runnable objects
associated with a thread’s MessageQueue. Each Handler instance is
associated with a single thread and that thread’s message queue. When
you create a new Handler, it is bound to the thread / message queue of
the thread that is creating it — from that point on, it will deliver
messages and runnables to that message queue and execute them as they
come out of the message queue.”
I totally get the use of Handler in Multi-Threaded application, in which one thread will post to other thread message queue using Handler, but what is the use of Handler in single threaded application. The reason why I am asking this is because I saw couple of sample applications at developer.google.com using HAndler in single threaded application. Here is one example.
The code example you posted is not single threaded – for example the doInBackground() method of an AsyncTask runs on a thread separate from the UI thread. That is why a Handler is being called in that method.
Read up on AsyncTasks and then look at the ReverseGeocodingTask in your sample.