Ich habe ein Problem mit dem Bitmap-Recycling. Ich zeige die Bitmaps in einer Pulltorefreshlistview an. Ich habe etwa 30-50 Bilder zum Herunterladen zusammen mit etwas Text von Webservice-Funktion. Ich verwende Lazyloading von Bildern und lade Bilder herunter und dekodiere sie auf 80x80 Größe. Mein Problem ist, dass ich OutOfmemoryError bekomme. Also habe ich einige R und D und wissen, dass Bitmaps waren nicht GC'd sofort. Also möchte ich recycle() die Bitmaps für die Rückgewinnung des Speichers zu tun. wo zu recycle() auf Bitmaps aufrufen. Ich verwende berühmte Faulenzerliste . in diesem unten Code nach der Einstellung Bitmap, habe ich versucht, bitmap.recycle() zu tun. Ich habe keine Fehler wie andere auf Stackoverflow berichtet, aber seltsame Sache ist listitems sind leer angezeigt. Ich frage mich, dass, wenn ich recycle() Bitmap, warum die textviews, in der gleichen Zeile betroffen sind. Da gibt es große Anzahl von Bildern meine app Absturz sehr bald. Ich möchte auch fragen, wie man alle Bilder in Listview auf einmal zu recyceln. bitte jemand mir helfen.
//Used to display bitmap in the UI thread
class BitmapDisplayer implements Runnable
{
Bitmap bitmap;
PhotoToLoad photoToLoad;
public BitmapDisplayer(Bitmap b, PhotoToLoad p){bitmap=b;photoToLoad=p;}
public void run()
{
if(imageViewReused(photoToLoad))
return;
if(bitmap!=null)
photoToLoad.imageView.setImageBitmap(bitmap);
else
photoToLoad.imageView.setImageResource(stub_id);
}
}