안드로이드 화면 회전시 리로드하지 않고 내용 유지하기 (Android Orientation Change Keep Content)

안드로이드는 화면의 orientation 변경시 기본적으로 onDestroy()를 호출 후 onCreate()를 호출하여
해당 화면의 액티비티가 초기화 되며 이것은 아래의 방법을 통해 방지가 가능합니다

주요시스템 변경은 onConfigurationChanged를 이용해 감지할 수 있습니다

orientation: 스크린이 세로에서 가로로 바뀌는것
keyboardHidden: 키보드가 보여지거나 숨겨지는것.
fontScale: 사용자가 원하는 폰트의 크기를 변경하는것.
locale: 사용자가 언어 세팅을 변경하는것.
keyboard: 키보드의 종류가 바뀌는것.


- AndroidManifest 에 정의
<activity android:configChanges="orientation|keyboardHidden"></activity>


- configChanges시 관련내용 제어하기
@Override
public void onConfigurationChanged(Configuration newConfig) {
   super.onConfigurationChanged(newConfig);
   /*
   // 위 소스만 적용했을때 내용이 유지되고 추가 코드를 입력할때는 아래와 같이 한다
   if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
      // 가로모드로 변경되었을때 
   if (newConfig.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO)
      // 키보드가 보여질때
   */
}


- Configuration
http://developer.android.com/reference/android/R.attr.html#configChanges
http://developer.android.com/reference/android/content/res/Configuration.html
RSS :
Response