title: What is the different between Handler, Runnable, and Threads?
body: <p>What is the difference between Handler, Runnable, and Threads?</p>
  
  <p>While I was working with android, and I need something to run in the background. I use Threads to run it. Usually I would write a class that extends Thread and implement the run method.</p>
  
  <p>I have also saw some examples that implments runnable and pass into runnable into Threads.</p>
  
  <p>However I am still confused. Can someone give me a clear explanation?</p>
  
  <ol>
  <li>What is the point of Runnable if one can write the background code in the Thread's run method?</li>
  <li>How is Handler used inside thread and why do we need to use it.</li>
  <li>Android has another thing call runOnUiThread, How do we use that? I know that it is used for updating the UI.</li>
  </ol>