2016-03-21 16 views
0

Bir dosyadan bir bitmap elde etmek için bir BitmapFactory kullanıyorum. DecodeStream'deki ilk argüman bir akıştır. Yeni bir FileInputStream ile veriyorum. Bunun yerine akışı açıkça kapatmalı mıyım? Bu bir bellek sızıntısına neden olabilir mi?Açıkça kapatılıyor FileInputStream

Bitmap bm = BitmapFactory.decodeStream(new FileInputStream(x)) 

Belki

FileInputStream fis = new FileInputStream(x); 
Bitmap bm = BitmapFactory.decodeStream(fis); 
fis.close(); 

bu soru bitmapten daha FileInputStream hakkında daha fazla olduğunu, bitmap'ler sızdıran olmak için bir eğilim var biliyor ?: olmalıdır.

cevap

0

Evet, akışı kapatmanız gerekiyor. Kod çözme işlevi, yazılacak daha fazla veri olmadığını bildiğinden, bunu sizin için yapmayacaktır. Bunu yapmamak büyük bir bellek sızıntısına neden olmamakla birlikte, akış arabelleğe alınmışsa ve OS kaynaklarını (dosya tanıtıcılarını en düşük düzeyde) yayınlanmayacaksa, diske akıtılmaması için verilere neden olabilir.

İlgili konular