title: Android CalledFromWrongThreadException
body: <p>I've seen a lot of questions about this subject but i'm really not happy with any answer.</p>
  
  <p>What i want its to have a <code>class ConnectionController implements Runnable</code> that is responsible for opening the conection to server, read and write messages to it and have to be instantiated since the beginning of the application through the end.</p>
  
  <p>I have a <code>class MainActivity extends from Activity</code> that onCreate it will instantiate a ConnectionController object.</p>
  
  <p>That connectionController has to change some fields on MainActivity (and eventually in another activities), like status conections ImageView for example, or even received messages TextView.</p>
  
  <p>Because connectionController is a Thread i cannot access to elements (CalledFromWrongThreadException (Only the original thread that created a view hierarchy can touch its views).</p>
  
  <p>What do you recommend to use?  I saw solution with async tasks, handlers, myUIRunnable but i didn't understand what is the best solution for this situation.</p>
  
  <p>Thanks in advance.</p>