Android: Passing Activity to java class with running thread wrong view exception
<p>I am trying to pass my Main activity into a java class that has a running thread. When the thread is called I then have to reference some objects back in my activity class that do some work and update the UI. My code looks like this.</p>

<pre><code>/**
 *
 */
public class MainActivity extends Activity {

     Person person;

     @Override
     public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);

          person = new Person();
     }


     public void updateInfo(String action) {

          person.setAction(action);

          //redraw the person to the gui
          ImageView image = (ImageView) findViewById(R.id.action);
          int id = getResources().getIdentifier(person.getCurrentAction(),"drawable", getPackageName());
          image.setImageResource(id);


     }
 }

 /**
  *
  */
 public class ThreadClass {

     private MainActivity mainActivity;

     public SocketClient(MainActivity mainActivity) {
           this.mainActivity = mainActivity;
           new MyThread().start();
     }

     private class MyThread extends Thread {

          public void run() {
              try {
                  while(!isInterrupted() {
                      mainActivity.updateInfo("Person is running");
                  }
              }
          }

     }


 }
</code></pre>

<p>When I do it this way I get the error that I am not updating the view in the correct thread. android.View.ViewRoot$CalledFromWrongThreadException. What am I doing wrong here? Also this code most likely will not compile its pseudo code because I had to take out all of the other logic. </p>
