Honikou Posté(e) 15 juin 2011 Share Posté(e) 15 juin 2011 Bonjour, J'utilise un système de score en ligne sur mon jeu Jongle Football : https://market.android.com/details?id=com.honikou.games.jongle Cependant quand je vais chercher les scores, l'application se bloque, j'ai pas fait de thread ni asynctask. Aujourd'hui quand j'essaye de mettre en place Asynctask j'ai beaucoup de mal. class DownloadFilesTask extends AsyncTask<URL, Integer, Long> { private InputStream is = null; private String result = ""; public static final String strURLget = "monadresse.com"; protected Long doInBackground(URL... urls) { try { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(strURLget); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); } catch (Exception e) { } // Convertion de la requête en string try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result = sb.toString(); } catch (Exception e) { Log.e("log_tag", "Error converting result " + e.toString()); } return null; } protected void onProgressUpdate(Integer... progress) { } protected void onPostExecute(Long result) { } } Ce code compile, par contre je comprend pas comment je peux une fois fini (dans le OnPostExecute), comment je récupère le string result pour l'envoyer a ma class OnlineScore ( qui implement activity) pour ajouter tout ça dans mon application. sources: - android: http://developer.android.com/reference/android/os/AsyncTask.html - post 2009: Lien vers le commentaire Partager sur d’autres sites More sharing options...
pat Posté(e) 15 juin 2011 Share Posté(e) 15 juin 2011 deja tu change AsyncTask<URL, Integer, Long> en AsyncTask<URL, Integer, String> puis tu change protected Long doInBackground(URL... urls) en protected String doInBackground(URL... urls) puis tu change protected void onPostExecute(Long result) en protected void onPostExecute(String result) enfin dans doInBackground tu return result; Lien vers le commentaire Partager sur d’autres sites More sharing options...
Honikou Posté(e) 15 juin 2011 Auteur Share Posté(e) 15 juin 2011 Le 15/06/2011 à 09:22, pat a dit : deja tu change AsyncTask<URL, Integer, Long> en AsyncTask<URL, Integer, String> puis tu change protected Long doInBackground(URL... urls) en protected String doInBackground(URL... urls) puis tu change protected void onPostExecute(Long result) en protected void onPostExecute(String result) enfin dans doInBackground tu return result; merci de ta réponse, mais comment je fais une fois terminé pour utiliser la string que cela me renvoi, au moment ou c'est fini. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Honikou Posté(e) 15 juin 2011 Auteur Share Posté(e) 15 juin 2011 Le 15/06/2011 à 13:40, Honikou a dit : merci de ta réponse, mais comment je fais une fois terminé pour utiliser la string que cela me renvoi, au moment ou c'est fini. problème résolu ! private class LongOperation extends AsyncTask<String, Void, String> je le met dans la class activity et j'appel une fonction quand c'est fini. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.