반응형
안녕하세요. 돼지왕 왕돼지입니다.
오늘은 Activity 의 상태를 저장하는 두가지 방법에 대해 알아보겠습니다.
두 가지 방법은 SharedPreference 와 Bundle 을 이용한 방법입니다.
SharedPreference & Bundle 을 이용한 상태 저장 방법.
int x, y;
public void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
if (savedInstanceState == null){
x = 50;
}
x = saveInstanceState.getInt("x");
}
SharedPreferences pref = getSharedPreferences("savestate", 0);
y = pref.getInt("y", 50);
setContentView(R.layout.main);
}
public void onSaveInstanceState(Bundle outState){
outState.putInt("x", x);
}
public void onPause(){
super.onPause();
SharedPreferences pref = getSharedPreferences("savestate", 0);
SharedPreferences.Editor edit = pref.edit();
edit.putInt("y", y);
edit.commit();
}
cf) Bundle은 일종의 맵입니다.
cf) savedInstance 는 액티비티 실행중에만 저장되는 temporary 공간, preference는 파일형식으로 저장되는 영구저장 공간입니다.
cf) Back 키는 실행 종료로 인식되어, 영구 정보( SharedPreference )만 보존.
cf) onPause() 는 액티비티가 종료되는 시점이면 무조건 실행되어 필요한 정보를 저장하지만,
onSaveInstanceState() 는 생명주기에 포함되지 않아 필요할 때만 호출됨.
onSaveInstanceState() 는 생명주기에 포함되지 않아 필요할 때만 호출됨.
반응형
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Android/안드로이드] 암시적 인텐트 ( Implicit Intent ) 에 대해 알아보아요. (0) | 2012.02.19 |
---|---|
[Android/안드로이드] 액티비티 생명주기. ( Activity Life cycle ) (0) | 2012.02.19 |
[Android/안드로이드] Activity 의 상태 저장. Object 형태로. ( Serializable 과 Parcelable 을 이용한 방법 ) (0) | 2012.02.19 |
[Android/안드로이드] Tab Activity 의 모든 것. (0) | 2012.02.18 |
[Android/안드로이드] Dialog 에 대한 모든 것. (0) | 2012.02.18 |
댓글