이 질문은 Do we have to explicitly recycle the bitmap if we don't need it?과 관련이 있습니다.필요없는 경우 ImageView 내부의 드로어 블을 파괴하는 방법은 무엇입니까?
ImageView에는 드로어 블이 있습니다. 사용자가 버튼을 클릭하면 ImageView에 새로운 드로어 블이 지정됩니다.
ImageView에 속한 오래된 드로어 블을 폐기해야합니까?
Drawable oriDrawable = imageView.getDrawable()
// set callback to null
oriDrawable.setCallback(null);
// get the bitmap and recycle it
((BitmapDrawable)oriDrawable).getBitmap().recycle();
위의 코드가 맞습니까? 가장 좋은 솔루션은 무엇입니까?
나는 OutOfMemoryException을 가지고 있으며 URL의 제안으로 그것을 고쳤다. 그러나 가능한 한 많이 사용하지 않는 드로어 블을 재활용해야하거나 새로운 드로어 블을 지정할 때 자동으로 소멸됩니다. – Freewind
GC로 재활용 될 것이므로 재활용하지 않고 문제가 발생하는지 먼저 확인하려고합니다. 드로어 블 또는 비트 맵에 대한 추가 참조가 없도록하여 GC 자격을 얻으십시오. –