Monday, 21 November 2011

android vm budget error

오리엔테이션을 바꾸다 보면 onDestroy()가 호출되지 않고 onCreate()만 호출되어 메모리 누수가 일어나게 된다. 이동작을 계속 반복하면  bitmap size exceeds VM budget  메시지와 함께 네이티브힙을 확보하지 못해 activity가 죽게 된다.

이 경우 간단한 설정으로 onCreate()가 무한 호출되는 것을 막을 수 있다.

AndroidManifest.xml 파일의 activity 선언에 android:configChanges="orientation" 을 추가해 주면 오리엔테이션 변경시 onCreate()가 호출되지 않고 onConfigurationChanged() 가 호출되어 변경되는 ui 처리를 할 수 있다.