HandlerThreads and communication between Threads
suggest changeAs Handlers are used to send Messages and Runnables to a Thread’s message queue it’s easy to implement event based communication between multiple Threads. Every Thread that has a Looper is able to receive and process messages. A HandlerThread is a Thread that implements such a Looper, for example the main Thread (UI Thread) implements the features of a HandlerThread.
Creating a Handler for the current Thread
Handler handler = new Handler();
	Creating a Handler for the main Thread (UI Thread)
Handler handler = new Handler(Looper.getMainLooper());
	Send a Runnable from another Thread to the main Thread
new Thread(new Runnable() {
    public void run() {
        // this is executed on another Thread
        // create a Handler associated with the main Thread
        Handler handler = new Handler(Looper.getMainLooper());
        // post a Runnable to the main Thread
        handler.post(new Runnable() {
            public void run() {
                // this is executed on the main Thread
            }
        });
    }
}).start();
	Creating a Handler for another HandlerThread and sending events to it
// create another Thread
HandlerThread otherThread = new HandlerThread("name");
// create a Handler associated with the other Thread
Handler handler = new Handler(otherThread.getLooper());
// post an event to the other Thread
handler.post(new Runnable() {
    public void run() {
        // this is executed on the other Thread
    }
});
	
  Found a mistake? Have a question or improvement idea?
  Let me know.
      
      Table Of Contents