android runnable difference

android, java, multithreading

Solution

`Handler` is used for communication between and coordinating threads. By creating a Handler, you bind it to the current thread. If you post a runnable to that Handler, it will be executed in that same thread.

`Thread` is Java's way to spawn new user-level threads. The runnable you pass it will be executed in that thread.

The two concepts are not mutually exclusive. You can use `Handler` with custom `Thread`s.

Problem

What is the different b/w running runnable inside handler new Handler().post(runnable) and running in Thread(runable) ?

Original source