пропустил 147 кадров! Приложение может делать слишком много работы в своем основном потоке

Я понимаю смысл этой ошибки. Я нашел много похожих вопросов здесь на stackoverflow.com, и я попытался реализовать ответы, которые были предложены, но все же я получаю эту ошибку. Я пытаюсь использовать php web service. Я извлекаю данные с сервера базы данных mysql и пытаюсь отобразить их в виде списка с помощью AsyncTask следующим образом:

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;

    }

Во многих ответах предлагалось, чтобы вся обработка выполнялась в функции doInBackground. Ниже приведен код для отображения этого массива в 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);

            }
        });

    }

Пожалуйста, помогите, потому что прежде всего я новичок в Android, и я не имею ни малейшего понятия, как решить эту проблему. Пожалуйста, проверьте мой код и дайте мне знать проблему.

Ответы на вопрос(2)

Ваш ответ на вопрос