OK - maintenant la trace de la pile est attachée: ConcurrentModificationException Vous modifiez ArrayList à partir de threads différents ou en itérant par-dessus. Soit vous devez synchroniser l'accès ou utiliser une autre collection comme ConcurrentHashSet.
Mais peut-être ce qui suit (ma réponse d'origine) sera intéressant aussi: p
Ressemble, que vous mise en cache des objets réels Bitmap avec l'ensemble des données de pixel -> Je suppose que, vous avez OutOfMemoryException
Le garbage collector est une opération asynchrone et si vous effacez votre tableau bitmap, les bitmaps ne sont pas déchargés de la mémoire instantanément. Si vous en insérez de nouveaux, cela peut arriver, les anciens sont toujours en mémoire et les nouveaux sont également chargés.
Solution: Ne mettez pas en cache les bitmaps de cette manière, c'est ce que vous faites.
Ils sont des choses différentes, vous pouvez essayer (dépend de scenrario béton yout):
1) Si elles sont stockées sur la carte SD ou autre chose, cache que le chemin vers les bitmaps dans votre collection et de les charger , si elles sont nécessaires pour le dessin. 2) Utiliser des objets Drawable au lieu de bitmaps - ils ont des méthodes et un algorithme intéressants pour un accès optimisé aux données bitmap.
3) Pour optimiser les performances, utilisez quelque chose comme SoftReference ou similaire - peut-être WeakRefernce. Les SoftReferences peuvent être déchargées par le GC à la demande (lorsque la mémoire est faible). Dans ce cas, vous devez vérifier si la référence douce est nulle ou existe toujours. par exemple:
ArrayList<SoftReference<Bitmap>> _graphics = new ArrayList<SoftReference<Bitmap>>();
...
for (int i = 0; i < _graphics.size(); i++)
{
Bitmap b = _graphics.get(i).get();
if (b == null)
{
b = loadFromSomewhere(i);
_graphics.add(new SoftReference<Bitmap>(b), i);
}
... do something wwith your bitmap
}
Ce code snipet n'a pas été testé ou écrit avec un éditeur Java (s'il vous plaît excuser les erreurs de frappe ou de mauvaises signatures de méthode).
Vous devez envoyer la sortie logcat. – EboMike
Voici: http: //pastebin.com/DVNTGhZj – PeterW