안드로이드 앱 개발 시, 태블릿의 경우 사용자마다 가로/세로 회전(화면전환)을 이용하는 경우가 있습니다.
화면전환 시, 안드로이드 생명주기에 따라서 onPause() → onStop() → onDestory() → onCreate() → onStart() 로 진행됩니다.
한 마디로 액티비티를 새로 그려주게 됩니다.
만약에 사용자가 회원가입 과정 중에, 다수의 개인정보를 입력하고 있다가 화면전환을 했다는 이유로 입력했던 모든 정보가 초기화되면서 새로 입력해야 한다면 큰 문제가 될 것입니다.
이럴 때, onSaveInstanceState(), onRestoreInstanceState() 함수를 사용하여 데이터를 보관 및 다시 불러오면 초기화 현상을 막을 수 있습니다.
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onRestoreInstanceState(savedInstanceState, persistentState);
}
▷ onSaveInstanceState()
: onDestory() 함수가 호출되기 전에 call
: onPause() → onStop() → onSaveInstanceState() → onDestory()
▷ onRestoreInstanceState()
: onCreate() 함수 호출 이후에 call
: onPause() → onStop() → onDestory() → onCreate() → onRestoreInstanceState()
※ 참고출처
'안드로이드' 카테고리의 다른 글
[Kotlin] Fragment에서 Activity 함수 호출하는 방법 (0) | 2021.04.16 |
---|---|
[실무 라이브러리] RxJava와 Coroutines 비교해보자 (0) | 2021.04.10 |
[JetPack] ViewModel 의 역할 (0) | 2021.03.15 |
[Kotlin] 앱 비정상 종료 시, 대체 액티비티 띄우기 ! (0) | 2021.03.12 |
[Android] 회전모드 최적화 하는 방법 (상태유지) (0) | 2021.01.22 |
댓글