J'utilise la bibliothèque Volley pour télécharger des métadonnées pour certains éléments, qui est retourné au format XML. Tout fonctionne comme prévu pour un montant raisonnable d'articles, mais quand ils sont trop nombreux - environ 7000 - l'application à court de mémoire disponible et je reçois cette erreur (pris avec bibliothèque ACRA):Volley OutOfMemoryError causée par MessageQueue complet
03-21 11:08:31.362: E/ACRA(16922): java.lang.OutOfMemoryError
03-21 11:08:31.362: E/ACRA(16922): at java.lang.String.<init>(String.java:255)
03-21 11:08:31.362: E/ACRA(16922): at java.lang.String.<init>(String.java:228)
03-21 11:08:31.362: E/ACRA(16922): at com.android.volley.toolbox.StringRequest.parseNetworkResponse(StringRequest.java:67)
03-21 11:08:31.362: E/ACRA(16922): at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:121)
J'ai aussi recevoir des messages de Choreographer se plaignant des images perdues. J'utilise volley pour rendre commun StringRequest
s et toutes les demandes sont traitées par un RequestQueue
unique. En utilisant Eclipse MAT, j'ai découvert que la majeure partie du tas est occupée par un MessageQueue
qui contient toujours l'ancien XML. Bien sûr, cela bloque l'application si je dois effectuer beaucoup (milliers) de demandes.
Comment puis-je vider le MessageQueue?