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.