Je récupère JSON à partir du Web avec AsyncTask et analyse également JSON dans la méthode doInBackground(). Je commence ma progressionDialogue dans onPreExecute() et le rejette dans onPostExecute(). Le problème est que ma boîte de dialogue n'est jamais ignorée et que je reçois la question wait/force close ou l'émulateur se bloque. J'ai essayé d'analyser JSON à partir du fichier local et cela a fonctionné. Mon second log.d() dans doInBackground() n'est jamais imprimé, seulement le premier.ProgressDialog n'est jamais rejeté lors de l'extraction de JSON avec AsyncTask
Mon doInBackground() ressemble à ceci:
private class DownloadFilesTask extends AsyncTask<String, Void, String> {
protected String doInBackground(String... url) {
DefaultHttpClient httpClient = new DefaultHttpClient();
URI uri;
InputStream data=null;
String x="";
try {
uri = new URI(url[0]); //url of my JSON file
HttpGet method = new HttpGet(uri);
HttpResponse response = httpClient.execute(method);
data = response.getEntity().getContent();
byte [] buffer = new byte[data.available()];
Log.d("First: ","ziv");
while (data.read(buffer) != -1);
Log.d("Second: ",Integer.toString(buffer.length));
String jsontext = new String(buffer);
JSONArray entries = new JSONArray(jsontext);
x = "JSON parsed.\nThere are [" + entries.length() + "]\n\n";
int i;
for (i=0;i<entries.length();i++)
{
JSONObject post = entries.getJSONObject(i);
x += "------------\n";
x += "Date:" + post.getString("created_at") + "\n";
x += "Post:" + post.getString("text") + "\n\n";
}
}
catch (IOException je)
{
je.printStackTrace();
}
catch (URISyntaxException ur) {
ur.printStackTrace();
}
catch (JSONException je) {
tvData.setText("Error w/file: " + je.getMessage());
}
return x;
}
Où suis-je en train de faire mistekes?
Tnx, je compliquais le tout. – DixieFlatline