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.
There are two main uses for a Handler: (1) to schedule
messages and runnables to be executed as some point in the future; and (2) to
enqueue an action to be performed on a different thread than your own.
1.
AsyncTask and Handler are written in Java (internally they use a Thread), so everything you can do with Handler or AsyncTask, you can achieve using a Thread too.
2. An
AsyncTask is used to do some background computation and publish
the result to the UI thread (with optional progress updates). Since you're not
concerned with UI, then a Handler or Threadseems more appropriate.
3. Handler
allows you to send and process Message and Runnable objects associated with a thread's MessageQueue.
4. When
Handler communicates, it just gives a message to caller
thread and it will wait to process. Complicated? Just remember that Handler can communicate with the caller thread in a
safe way.
No comments:
Post a Comment