title: Does the android.os.Handler class eliminate the need to declare certain methods as synchronized?
body: <p>In putting together a simple "Clock" application I discovered that Android requires you to use android.os.Handler that lives in Thread A in order to update View objects in Thread A with the results of data that come from Thread B.</p>
  
  <p>I'm still relatively new to Java, and this is the first time I've dealt explicitly with Threads before, but I know that ordinarily you'd declare methods and/or operations as synchronized if two different threads want to access the same data.  It appears though, that android.os.Handler is an Android-specific way of synchronizing data between threads such that you avoid the <a href="http://download.oracle.com/javase/tutorial/essential/concurrency/interfere.html" rel="noreferrer">classic</a> <a href="http://download.oracle.com/javase/tutorial/essential/concurrency/memconsist.html" rel="noreferrer">concurrency errors</a> detailed in the Oracle documentation I just linked to.  Is this really true?  </p>
  
  <p>If I were to find myself in a situation such that I were <em>required</em> by the Android OS to use android.os.Handler to ferry data from one thread to another, does that mean I don't have to declare the methods used to derive that data as synchronized?  </p>