2012-01-11 2 views
5

작은 비트 맵을 표시하는보기가 있는데 이는 내 응용 프로그램의 여러 위치 (특히 목록보기)에서 사용됩니다.을 사용하여 해당보기의 인스턴스가 만들어 질 때마다이 비트 맵을 현재로드하고 있습니다. 나는 뷰의 모든 인스턴스가 뷰를 재사용 할 수 있도록 정적 변수에 비트 맵을 한 번로드하여 성능을 향상시킬 수 있음을 깨달았으며 실제로 뷰 인스턴스 당 약 2-4ms를 절약했다. 내 질문에, 이런 식으로 정적 변수를 사용하여 안드로이드에서 메모리 누수의 모든 유형의 원인은 무엇입니까? 이 같은 비트 맵을 저장하는 정적 변수를 사용하는 다른 예제를 찾지 못했기 때문에 걱정됩니다.정적 변수에 비트 맵 리소스 저장

후속 질문 : 정적 잠재적 메모리 누수의 원인이 될 수 비트 맵 객체를 유지 How to keep a Bitmap in memory

+2

에 공식 문서를 참조하십시오보기 위의 코드 조각에서 드로어 블은 TextView에 대한 참조를 가지고 있으며, TextView는 그 자체로 액티비티 (Context)에 대한 레퍼런스를 가지고 있습니다. 코드). "... 정적으로 유지하면 메모리 누수가 발생할 것입니다. – Nitin

+1

감사합니다. @ 0cool, 그 게시물을 보았습니다. 그러나 android.graphics.Bitmap (android.graphics.drawable.BitmapDrawable이 아닌)도 Drawable임을 확신하지 못합니다. 그게 사실인가요? –

+0

안녕하세요, @AbdullahJibaly 비트 맵을 사용하기 전에 무엇인가 가져 오거나 확장해야합니까? 내가 비트 맵 장치를하고 있는데, IDE가 _Bitmap을 type_으로 해석 할 수 없다는 오류가 발생했습니다. 미리 감사드립니다. – Learner

답변

1

는 드로어 블 Drawable이보기에 연결하면 "로맹 사람의 말을 인용 http://android-developers.blogspot.co.uk/2009/01/avoiding-memory-leaks.html

+3

감사합니다. @ Calvin, 나는 클래스 계층 구조에서 어떤 관계도 보이지 않기 때문에'Bitmap'이'Drawable '이라는 것을 몰랐습니다. 그냥 분명히'android.graphics.Bitmap'을 사용하고 있습니다. 'android.graphics.drawable.BitmapDrawable'가 아닙니다. 동일한주의 사항이 적용되는 경우이 문제에 대한 가장 직접적인 해결책은 무엇입니까? –

+0

다음 질문을 따르십시오 : http://stackoverflow.com/questions/8824004/how-to-keep-a-bitmap-in-memory –

+0

비트 맵은 drawable이 아니므로이 대답은 잘못되었거나 적어도 링크의 내용에 의해 지원되지 않습니다. –

관련 문제