savedInstanceState
2019. 10. 17. 13:46ㆍ모바일/Android_Java
사용이유
- 세로모드 -> 가로모드 전환시 onCreate함수 호출
- 전역변수에 설정한 값 모두 초기화
코드
@Override
protected void onSaveInstanceState(Bundle outState) {
int currentTodoPosition = getCurrentTodoList().indexOf(currentTodo);
outState.putInt("currentPosition", currentCategoryPosition);
outState.putInt("currentPosition", currentTodoPosition);
super.onSaveInstanceState(outState);
}
파라미터 1개, 2개짜리
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onRestoreInstanceState(savedInstanceState, persistentState);
}
파라미터 1개짜리 onRestoreInstanceState 는 화면이 회전하면 무조건 호출되지만 파라미터 2개짜리는 Bundle에 값이 없으면 호출되지 않습니다.
- onCreate() -> onStart() -> onRestoreInstanceState() -> onResume()
파라미터를 2개받는 함수는 API 21에 추가되었는데 onPause() 다음에 무조껀 실행되지 않고 화면 전환 같은 상황이여서 액티비티가 종료되는 것인지 아닌지를 판단하여 실행을 시켜줍니다.
- onPause() -> onSaveInstanceState() -> onStop() -> onDestory()
'모바일 > Android_Java' 카테고리의 다른 글
가로,세로화면(Configuration.ORIENTATION_PORTRAIT) (0) | 2019.10.24 |
---|---|
ColorDrawable (0) | 2019.10.23 |
액티비티 전환 플래그 (0) | 2019.10.16 |
Activity 관련 (0) | 2019.10.16 |
Realm (0) | 2019.10.14 |