Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
475 views
in Technique[技术] by (71.8m points)

android - Diff b/w bitmap.recycle() and bitmap=null

I am in a situation where I have used a for loop to download a set of images and I am converting it into bitmap images. So in order to avoid OutOfMemory error, I am trying to recycle the bitmaps. But unfortunately I am running into another exception saying something like "View trying to use a recycled bitmap".

But still I am allowed to null the used bitmap by using bitmap=null. So my question is, will making my bitmap null help me in freeing up the used memory? or should I provide bitmap.recycle() in some other part of my code?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

There is no guaranteed way to force a garbage collection, only a way to suggest one using System.gc(). Since the bitmaps pixel data lives in native memory outside of the dalvik heap, providing a native function (in this case recycle()) will give us the opportunity to clean up this pixel data for sure (eventually). Please note that when using recycle() there is not much more you can do with that bitmap.

The issue you are having is that you are calling recycle() on a bitmap, which you are still trying to use.

To answer your question, yes, setting bitmap to null after you have recycled it is a good idea, but it may also be redundant. Always try to recycle your bitmaps when you are done with them.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...