마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

bitmap oom 메모리 관리 질문.

0 추천
onResume단계에서 제가 작성한 메서드로 비트맵 이미지를 불러옵니다. oom관련해서 이미지 리사이징 소스가 많아서 이미지를 불러오는데 oom이 뜨진 않습니다.

근데 문제는 onPause, onStop상태에서 다시 onResume 상태로 돌아갈 때. 예를들면 홈화면으로 나갔다가 다시 어플로 들어갈 때 oom이 뜨네요.

 

어떻게 관리해야할까요;? 키워드만 알려주셔도 감사하겠습니다.
보이저 (1,160 포인트) 님이 2015년 8월 5일 질문
보이저님이 2015년 8월 5일 수정

3개의 답변

+1 추천
 
채택된 답변

onPause, onStop에서 비트맵에 recycle 먹여주시고, 

참조중인 자원에 대해 모두 null처리 해주시면 될거같네요. 

그리고 manifest에 android:largeHeap="true" 먹여주시면 oom 안뜰거 같네요.

익명사용자 님이 2015년 8월 5일 답변
보이저님이 2015년 8월 6일 채택됨
답변 감사합니다. 바로 해결되네요 ㅎㅎ

하지만 라지힙을 사용할 경우 백그라운드에서 돌아가는 앱을 죽이고 메모리를 가져오는 경우가 생긴다고 하네요. 그 마저도 별로 크지 않다고 하구요.

아무튼 리사이클로 잘 해결했습니다. 감사합니다.
+1 추천
익명사용자 님이 2015년 8월 5일 답변
답변 감사합니다. ㅎㅎ
0 추천
그래도 안될 때 Picasso 를 쓰니까 oom이 많이 사라졌어요
쎄미 (162,410 포인트) 님이 2015년 8월 6일 답변
...