title: How do I refactor my code to use AsyncTask?
body: <p>I made an application for Android that originally targeted a lower version (2.3). After I got my proof-of-concept working, I tried to get it to work on Android 4. That's when I got the NetworkOnMainThread exception.</p>
  
  <p>After doing some research, I quickly found the AsyncTask, which sounded awesome. The problem is, I'm having a hard time wrapping my mind around it. For instance, here's my original code:</p>
  
  <pre><code>public void Refresh(Context c)
  {
      SummaryModel model = MobileController.FetchSummary(c);
  
      TextView txtCurrentWeight = (TextView)findViewById(R.id.txtCurrentWeight);
      TextView txtWeightChange = (TextView)findViewById(R.id.txtWeightChange);
      TextView txtAvgPerWeek = (TextView)findViewById(R.id.txtAvgPerWeek);
  
      if(model.ErrorMessage == "")
      {
          txtCurrentWeight.setText(model.CurrentWeight);
          txtWeightChange.setText(model.WeightChange);
          txtAvgPerWeek.setText(model.Average);
      }
      else
      {
          Toast.makeText(c, model.ErrorMessage, Toast.LENGTH_LONG).show();
  
          txtCurrentWeight.setText("");
          txtWeightChange.setText("");
          txtAvgPerWeek.setText("");
      }
  }
  </code></pre>
  
  <p>I created an AsychTask like this:</p>
  
  <pre><code>public class WebMethodTask extends AsyncTask&lt;Object, Integer, Object&gt; {
      @Override
      protected void onPreExecute() {
          super.onPreExecute();
      }
  
      @Override
      protected void onProgressUpdate(Integer... values) {
          super.onProgressUpdate(values);
      }
  
      @Override
      protected void onPostExecute(Object result) {
          super.onPostExecute(result);
  
          SummaryModel model = (SummaryModel)result;
          // Can't seem to access UI items here??
  
      }
  
      @Override
      protected Object doInBackground(Object... params) {
  
          Context c = (Context)params[0];
          return MobileController.FetchSummary(c);
      }
  }
  </code></pre>
  
  <p>How do I access the UI items from the onPostExecute method? Or, do I have the wrong idea on how to use AsyncTask?</p>
  
  <p>Thanks!</p>