본문 바로가기

개발이야기

안드로이드 가로 전환 시 onCreate 호출 방지


안드로이드 앱을 개발하고 가로 모드로 전환을 해봤을 때 어떤 현상이 나는지 사실 모르다가.

이번에 음악을 들려주는 앱을 개발하고 나서 음악을 듣다가 가로로 전환했을 때 음악이 두번 들리길래 왜 그런가보니 onCreate가 두 번 호출하는 것이다.


왜 호출이 될까를 고민하다가 찾아보니

가로 모드로 전환된 후 화면 다시 생성을 하는 과정을 거친다. 이때 구지 이렇게까지 안해도 되는 상황들도 있기에 그런 경우 옵션은 아래와 같다.


manifest.xml 파일 내에서 전환 시 아무런 동작도 원하지 않는 Activity의 경우 아래와 같이 configChanges 옵션을 추가해주면 된다.  

<activity

    android:label="@string/app_name"         

 android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"