onConfigurationChanged()이용해서 시스템 세팅 변경에 따른 이벤트 체크하기!!

아래는 서비스 항목의 변경이 일어난 이후, 현재 액티비티를 처리할때에 '시스템 설정에 대한 변경'을 감지하고자 오버라이딩 하는 실제코드의 일부를 보여주고 있다. ActivityGroup을 상속받아야 한다.

@Override

public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if(mainMstLinear != null ){
mainMstLinear.removeView(tabView);
showTab();
}
}

Configuration 변경시 OnConfigurationChanged 사용하기

아래의 주요 시스템 세팅 변경은 Activity 의 onConfigurationChanged으로 감지가 되어 실시간으로 프로그램이 대응하는 것이 가능합니다.

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



이를 위해서는 Manifest 파일의 해단 Activity 의 옆에 아래와 같이 android:configChanges 를 먼저 선언합니다.

<activity android:name="RosaryList" android:configChanges="keyboardHidden|orientation"></activity>

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    [ ... Update any UI based on resource values ... ]
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        [ ... React to different orientation ... ]
    }
    if (newConfig.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO) {
        [ ... React to changed keyboard visibility ... ]
    }
}