saltou 147 quadros! O aplicativo pode estar fazendo muito trabalho em seu encadeamento principal

Eu entendo o significado desse erro. Encontrei muitas perguntas semelhantes aqui no stackoverflow.com e tentei implementar as respostas sugeridas, mas ainda estou recebendo esse erro. O que estou tentando fazer é usar o serviço web php. Estou extraindo os dados do servidor de banco de dados mysql e tentando exibi-los no listview usando o AsyncTask da seguinte maneira:

class LoadAllProducts extends AsyncTask<String, String, ArrayList<HashMap<String, String>>> 
{
    ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
    protected ArrayList<HashMap<String, String>> doInBackground(String... args)
    {
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        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<files.length();i++)
                {                     
                    HashMap<String, String> map = new HashMap<String, String>();    
                    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;

    }

Isso foi sugerido em muitas respostas que todo o processamento deve ser feito na função doInBackground. Agora abaixo está o código para exibir esta lista de matriz no ListView

 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);

            }
        });

    }

Por favor, ajude a causar antes de tudo, eu sou um iniciante no Android e não tenho idéia de como resolver esse problema. Por favor, verifique meu código e me informe o problema.

questionAnswers(2)

yourAnswerToTheQuestion