title: Update UI Android
body: <p>before writing this I looked at other post but have not found any solution, I would appreciate your help.</p>
  
  <p>In the onCreate method of the class of the application launcher creates a thread TCPServer and display a table with information.
  The problem is that this information varies and must be updated when the thread detects TCPServer have sent a new message control.</p>
  
  <p>Then I show the code if I expressed myself well.</p>
  
  <pre><code>//launcher class
  public class profesor extends Activity implements OnClickListener {
  
      static TableLayout alumnsTable; 
  
      @Override
      public void onCreate(Bundle savedInstanceState) {               
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
          .
          .
          .
  
          Thread serverThread = new Thread(null, new TCPServer(), "BackgroundService");
          serverThread.start();
          .
          .
          .       
  
          //information is added to the table        
          alumnsTable = (TableLayout)findViewById(R.id.alumnsTable);
          List&lt;Alumnos&gt; listaAlumnos = Alumnos.ReadList();
          for(Alumnos al:listaAlumnos){
              alumnsTable.addView(filaAlumno(al));
          }  
      }
  
      //Eliminates the above information and reloads the table with the new information
      public void actualiza(){
          alumnsTable.removeAllViews();
          setContentView(R.layout.main);
          alumnsTable = (TableLayout)findViewById(R.id.alumnsTable);                          
           List&lt;Alumnos&gt; listaAlumnos = Alumnos.ReadList();                                                                                                   
          for(Alumnos al:listaAlumnos){
              alumnsTable.addView(filaAlumno(al));
          }
      }
  }
  
  
  //TCPServer class
  public class TCPServer implements Runnable {
      private static Handler handler = new Handler();
  
  
      public void run() {
  
      ServerSocket serverSocket;
  
      String file;
      int filesizeMb = 4;
      int filesize = filesizeMb * (1024 * 1024); // filesize temporary hardcoded
  
  
      int bytesRead;
      int current = 0;
      try {
          serverSocket = new ServerSocket(profesor.COMUNICATION_PORT);
          Log.d(profesor.LOG_TAG,"S: Servidor Iniciado.");
  
          while (true) {
              final Socket sock = serverSocket.accept();
              String ClientAddr=sock.getInetAddress().toString();
              ClientAddr = ClientAddr.substring(ClientAddr.indexOf('/') + 1, ClientAddr.length());
              final String contacto=DeviceList.getDeviceName(ClientAddr);
              Log.d(profesor.LOG_TAG,"S: Conectado con: " + ClientAddr);
  
              // Conection type
              DataInputStream dis = new DataInputStream(sock.getInputStream());
              final String connectionType =dis.readUTF();
              Log.d(profesor.LOG_TAG,"S: Tipo de Conexion " + connectionType);
  
              .
              .
              .
              .
  
              // RECEIVING CONTROL MESSAGE
              if (connectionType.contains("CONTROL")) {
                  String ControlText =dis.readUTF();
                  String[] Control = ControlText.split(":");
                  Log.d(profesor.LOG_TAG,"S: Recibido nuevo progreso de prueba. IP: "+Alumnos.getIdAlumno(ClientAddr)+"-&gt;"+Integer.parseInt(Control[0])+" -&gt;"+Integer.parseInt(Control[1]));
  
                  Alumnos.setProgress(Alumnos.getIdAlumno(ClientAddr), Integer.parseInt(Control[0]), Integer.parseInt(Control[1]));
  
  
                  /****************************************************/
                  //Here is where I need to call the update method of the
                  //class teacher to delete the old data and fill the table
                  //again.
                  /****************************************************/
              }   
              dis.close();
              sock.close();
          }
  
          } catch (IOException e) {
              Log.d(profesor.LOG_TAG, "IOException"+e);
              e.printStackTrace();
          }
      }
  }
  </code></pre>
  
  <p>Can anyone give me some idea?, I have seen examples handlers but not in a class declaration and the call in another.</p>
  
  <p>I hope that you understand what I mean, my English is not very good.</p>
  
  <p>Thanks for the help</p>