액티비티 위에 새로운 액티비티가 뜨면서  

getResource().getDrawable(id) 부분에서 Out of Memory 오류가 발생하였다 오 갓뎀.....

결국 Manifest.xml 에서 Application 부분에 android:largeHeap="true" 옵션을 추가하였다.


뭔가 찝찝하여 largeHeap 옵션 없이 오류를 안 나게 하기 위해...  

기존 액티비티의 onPause() 에 DrawableUtil.recursiveRecycle(View root) (=> 구글에서 찾으면 쉽게 소스를 찾을 수 있다) 를 추가하였고, 새로운 액티비티의 onPause() 에도 넣었다. (onDestroy() 함수에  recycle 함수가 추가되어 있긴 했는데 onDestroy()가 호출되기 전에 다른 액티비티가 생성되어서 문제가 났다. 일일히 로그를 찍어보면서 확인..)

오류 없이 되긴 했는데.. 함수 호출 순서가 뒤엉켜서 애매했다. 


결국 largeHeap 추가로 끝.


http://aroundck.tistory.com/378 

여기를 보면 largeHeap 옵션은 HoneyComb (3.0) 부터 쓸 수 있고, 다른 App들을 죽일 수 있다고 한다.


Posted by 애이불비
l