title: When should I use each of Android's different messaging types?
body: <p>I've been working with <code>Android</code> for well over a year now, but I still have trouble determining when different types of messaging/communication between processes/threads should be used.  I'm mainly talking about broadcasting Intents, using AIDL for <code>services</code>, using Handlers to send messages and socket communication.</p>
  
  <p>Many of these tools can be used to accomplish similar tasks, but which is better suited to particular situations?</p>