title: skipped 147 frames! The application may be doing too much work on its main thread
body: <p>I understand the meaning of this error. I found many similar questions here at stackoverflow.com and I have tried to implement the answers those were suggested but still I am getting this error. What I am trying to do is using php web service I am extracting the data from mysql database server and trying to display it in listview using AsyncTask as follows:</p>
  
  <pre><code>class LoadAllProducts extends AsyncTask&lt;String, String, ArrayList&lt;HashMap&lt;String, String&gt;&gt;&gt; 
  {
      ArrayList&lt;HashMap&lt;String, String&gt;&gt; mylist = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;();
      protected ArrayList&lt;HashMap&lt;String, String&gt;&gt; doInBackground(String... args)
      {
          List&lt;NameValuePair&gt; params = new ArrayList&lt;NameValuePair&gt;();
          JSONObject json = jParser.makeHttpRequest(url_all_products, "GET", params);
  
          Log.d("All Products: ", json.toString());
          try {
  
                  JSONArray  files = json.getJSONArray(TAG_FILES);
                  for(int i=0;i&lt;files.length();i++)
                  {                     
                      HashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();    
                      JSONObject e = files.getJSONObject(i);
  
  
                      String file_name = e.getString(TAG_FILE_NAME);
                      String sender = e.getString(TAG_SENDER);
                      String subject = e.getString(TAG_SUBJECT);
  
  
                      map.put(TAG_SENDER, sender);
                      map.put(TAG_SUBJECT, subject);
  
                      mylist.add(map);            
                  } 
  
  
          } catch (JSONException e) 
          {
              e.printStackTrace();
              Log.e("log_tag", "Error parsing data "+e.toString());
          }
  
          return mylist;
  
      }
  </code></pre>
  
  <p>This was suggested in many answers that all the processing should be done in doInBackground function. Now below is the code to display this arraylist in ListView </p>
  
  <pre><code> protected void onPostExecute(String file_url) 
      {
  
          pDialog.dismiss();
  
          runOnUiThread(new Runnable() 
          {
              public void run() 
              {
                  String[] from = { TAG_SENDER, TAG_SUBJECT };
                  int[] to = { android.R.id.text1, android.R.id.text2 };
  
  
                  ListAdapter adapter = new SimpleAdapter(AllProductsActivity.this, mylist,
                          android.R.layout.simple_list_item_2, from , to);
                        setListAdapter(adapter);
  
              }
          });
  
      }
  </code></pre>
  
  <p>Please Help cause first of all I am a beginner of android and I dont have  any clue how to solve this problem . Please check my code and let me know the problem.</p>