onSaveInstanceState()

2018. 8. 17. 14:12Android

반응형

 

onSaveInstanceState() : 액티비티가 강제 종료되는 상황에 대비하여 액티비티의 상태 정보를 저장할 수 있도록 함

ex) 화면을 회전하여 시스템이 강제로 액티비티를 종료하면, 종료 직전에 onSaveInstanceState() 콜백 메소드를 호출하면서 Bundle이라는 객체에 상태를 저장할 수 있음

@Override
protected void onSaveInstanceState(Bundle outState) {
// 상태 저장
outState.putInt(STATE_SCORE, score);
outState.putInt(STATE_LEVEL, level);

// 항상 슈퍼클래스 메소드 호출해야 함
super.onSaveInstanceState(outState);
}

Bundle 객체에 저장된 상태 정보는 액티비티가 재생성될 때 onCreate(), onRestoreInstanceState() 메소드에 전달되어 복원할 수 있음

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// 항상 슈퍼클래스 메소드 호출해야 함
super.onRestoreInstanceState(savedInstanceState);

// 상태 복원
int score = savedInstanceState.getInt(STATE_SCORE);
int level = savedInstanceState.getInt(STATE_LEVEL);
}

Resumed -> onSaveInstanceState() -> Destoryed

ㅇ 상태를 저장하는 onSaveInstanceState()는 onDestory() 메소드가 호출되기 전에 호출됨

ㅇ onSaveInstanceState()는 onPause()와 onStop() 사이에 항상 호출됨

 

Created -> onRestoreInstanceState() -> Resumed

ㅇ 상태를 복원하는 onRestoreInstanceState()는 onCreate() 메소드가 호출되기 전에 호출됨

ㅇ onRestoreInstanceState()는 강제 종료되었을 때만 호출됨

ㅇ onCreate()에서도 Bundle 객체 이용해서 복원 가능함.

* 화면이 회전될 때 액티비티가 종료되고 다시 생성 => 화면이 회전하기 전의 상태를 저장하려면  onSaveInstanceState() 사용할 수 있음

 

https://smartstore.naver.com/byrollin?

 

바이롤린 : 네이버쇼핑 스마트스토어

언제나 함께해요

smartstore.naver.com

 

반응형

'Android' 카테고리의 다른 글

안드로이드 생명주기  (0) 2018.08.17
안드로이드 누가 이상 버전 다중창 막기  (0) 2018.08.17
밀도(Density)  (0) 2018.08.14
안드로이드 9.0(파이)  (0) 2018.08.10
원형 프로그레스바  (0) 2018.07.12