전공/안드로이드

안드로이드 화면 회전시 주의사항.

무한공백 2016. 3. 16. 13:09

얼마전 열심히 개발해 놓은 앱이 자꾸 동작 중지되는 현상이 일어났다.


열심히 뒤적뒤적 해봤지만 문제될 것이 없어 보였는데.....


디버깅 하다 보니 액티비티 생명 주기가 이상하게 변하는 것을 알 수 있었다.


화면 회전이 될 때 onDestroy 한번 호출 후 Create가 호출되는!!! 그래서 기존 데이터 값이 다 날라가는 현상이었다.


확인해 본 결과 아래 처럼 해결하면 된다.



//Manifest 파일의 다음 부분에 아래와 같이 추가
	
<activity android:name=".MainActivity" 
android:label="@string/app_name" 
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"> //여기가 중요하다.
...


//실제 자바 코드에서 아래의 함수 추가
@Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    }

이렇게 해주면 된다.

screenSize가 없으면 onCreate 함수가 호출된다.