title: Wait for threads to complete before continuing
body: <p>When the user launches my Android App, I fire up 2 threads to do some processing in the background. thread_1 does some calculations on the client, and thread_2 fetches some data from the server. That all works fine. None of the threads modify the UI. I have two follow up questions.</p>
  
  <pre><code>new Thread(new Runnable(){
      @Override
      public void run(){
          MyClass.someStaticVariable = doSomeCalculations();
      }
  }).start();
  </code></pre>
  
  <ol>
  <li><p>What is the best practice to retrieve the data from the run() method of a thread? I currently have a static variable, and I assign the relavent calculated data/ fetched data to it. Or is it recommended to use the Handler class to get data out of threads? I imagined one only uses the handler if they wish to update the UI.</p>
  
  <pre><code>while(true)
  {
      if (!thread1.isAlive() &amp;&amp; !thread2.isAlive())  
      {
          startActivity(intent)
      }
  }
  </code></pre></li>
  <li><p>I need to wait until both threads are finished before I can pass the data from both threads via an Intent. How can I achieve that? I can do it using the code shown above, but that just seems wrong.</p></li>
  </ol>