앱 runtime중 환경에 변화가 일어나면 실행중인 activity는 destory되며 재시작됩니다.
이때 activity가 재시작되는 것을 원치 않을때에는 manifest에 android:configChanges의 attribute에 알맞은 값을 넣어서 재시작을 방지합니다.
attribute의 속성은 다음과 같은 종류가 있습니다.
mcc : SIM 이 Detect 되고 MCC 가 Update. ( IMSI Mobile Country Code가 변한 경우)
mcc : SIM 이 Detect 되고 MNC 가 Update. ( IMSI Mobile Network Code가 변한 경우 )
locale : 새로운 언어(Locale)를 변경했을 때
touchscreen : Touch Screen Hardware 가 바뀌었을 때
keyboard : External Keyboard를 꽂았을 때를 비롯해 Keyboard 의 Type이 변경됬을 때
keyboardHidden : Hardware Keyboard를 보이거나, 감추는 등 Keyboard의 Accessibility가 변경된 경우
navigation : Navigation Type ( 트랙볼 / DPad ) 가 변경되었을 때
orientation : 스크린의 Orientation 이 변경되었을 때
screenLayout : 스크린의 레이아웃이 변했을 때, 다른 디스플레이가 활성화 되고 레이아웃이 변한 경우
fontScale : font size를 변경했을 때
uiMode: Device 를 Desk 나 Car Dock 등에 비치해 Interface Mode가 변경되었을 때
configChanges를 설정하면 activity가 재시작되는 대신에 onConfigurationChanged 함수가 호출됩니다.
댓글