Android: "Versuch, eine Recycling-bitmap" Fehler mit temporären Bitmaps

Meine app laden kann, ganz große Bilder. In eine Anstrengung, um die Speicher-konservativ, ich bin versucht, eine temporäre bitmap zu laden und ein weiteres für das Finale Bild nach der transformation:

.....
finalBitmap.recycle();
finalBitmap = null;
Bitmap tempBitmap  = BitmapFactory.decodeStream(fin, ...);
finalBitmap = Bitmap.createBitmap(tempBitmap, ....);
imgview.setImageBitmap(finalBitmap);
.....

Nun, an diesem Punkt sind wir fertig mit tempBitmap, die nur nötig war, um den transport der Bitmap dekodiert, um die transformation Schritt in createBitmap. Also:

.....
tempBitmap.recycle();
tempBitmap = null;
.....

Und... es stürzt ab mit "dem Versuch, eine Recycling-bitmap" Fehler, insbesondere, weil der recycling tempBitmap. tempBitmap nicht angezeigt und wird nur verwendet Recht dort.

Was läuft hier falsch? Soll ich einfach "finalBitmap" ganz und verlassen sich auf createBitmap zu verwalten (finalBitmap = Bitmap.createBitmap(finalBitmap , ....))? Ich sehe nicht, was kontinuierliche Abhängigkeit von tempBitmap würde es dazu führen würde, dass ein solcher Fehler.

Edit: ja, die null-Zuweisung scheint das Ergebnis in das entsprechende, eventuelle garbage collection, aber ich bin verwirrt, warum recycle() auf einen temp-Bitmap ist so problematisch in diesem Fall. Ich habe den Eindruck, dass createBitmap() hält eine Referenz auf, aber warum und für wie lange?

Schreibe einen Kommentar