기술참고자료/Android
onConfigurationChanged()이용해서 시스템 세팅 변경에 따른 이벤트 체크하기!!
농사꾼봉팔
2011. 3. 4. 09:45
아래는 서비스 항목의 변경이 일어난 이후, 현재 액티비티를 처리할때에 '시스템 설정에 대한 변경'을 감지하고자 오버라이딩 하는 실제코드의 일부를 보여주고 있다. ActivityGroup을 상속받아야 한다.
@Overridepublic void onConfigurationChanged(Configuration newConfig){super.onConfigurationChanged(newConfig);if(mainMstLinear != null ){mainMstLinear.removeView(tabView);showTab();}}
Configuration 변경시 OnConfigurationChanged 사용하기
아래의 주요 시스템 세팅 변경은 Activity 의 onConfigurationChanged으로 감지가 되어 실시간으로 프로그램이 대응하는 것이 가능합니다.
아래의 주요 시스템 세팅 변경은 Activity 의 onConfigurationChanged으로 감지가 되어 실시간으로 프로그램이 대응하는 것이 가능합니다.
orientation: 스크린이 세로에서 가로로 바뀌는 변경사항.
keyboardHidden: 키보드가 보여지거나 숨겨지는 변경사항 .
fontScale: 사용자가 원하는 폰트의 크기를 변경하는 것.
locale: 사용자가 언어 세팅을 변경하는것.
keyboard: 키보드의 종류가 바뀌는 사항
이를 위해서는 Manifest 파일의 해단 Activity 의 옆에 아래와 같이 android:configChanges 를 먼저 선언합니다.
<activity android:name="RosaryList" android:configChanges="keyboardHidden|orientation"></activity>
<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 ... ]
}
}