2011-12-30 4 views
1

Mon code tire un JSON d'un serveur. Le JSON a des URL d'image. J'analyse le JSON et télécharge les Images des URL du JSON dans une Hashtable Bitmap pour arrêter plusieurs téléchargements de la même image. Lorsque je lance ce thread sur l'interface utilisateur, l'application ralentit mais fonctionne. En le déplaçant vers un AsyncTask, l'application se bloque avec une EXCEPTION FATALE: java.lang.RuntimeException: Une erreur est survenue lors de l'exécution de doInBackground()Crash Android AsyncTask sur plusieurs téléchargements Internet

Qu'est-ce qui aurait pu mal tourner?

Voici le code Async http://pastebin.com/isDgENkJ

+2

Montrez-nous votre code 'AsyncTask'. –

+1

publie également l'erreur logcat pour avoir une idée claire. –

Répondre

1

Changer votre déclaration class à:

public class GetMapsAsync extends AsyncTask<Void,Void, CustomItemizedOverlay>{ 

et votre méthode de doInBackgournd() devrait ressembler à:

protected CustomItemizedOverlay doInBackground(Void... v){ 

supprimer cette ligne dans doInBackgournd():

mapOverlays.add(itemizedOverlay); 

et de mettre cette ligne au lieu de return null; à l'extrémité intérieure doInBackgournd():

return itemizedOverlay; 

et votre méthode de onPostExecute() devrait ressembler à:

@Override 
protected void onPostExecute(CustomItemizedOverlay overlay) { 
    mapOverlays.add(overlay); 
} 

si elle est encore vous voyez un Exception puis poster votre logcat aussi.