Handler used for communication between coordinating threads. By creating a Handler, you bind it to the current thread. If you send runnable to this handler, it will execute in the same thread.
Thread is a Java way to create new user level threads. The run that you will pass will be performed in this thread.
Both concepts are not mutually exclusive. You can use Handler with custom Thread s.
source share