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