본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] Activity의 상태 저장 ( SharedPreference와 Bundle 을 이용하는 빙법)

by 돼지왕 왕돼지 2012. 2. 19.
반응형


안녕하세요. 돼지왕 왕돼지입니다.
오늘은 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() 는 생명주기에 포함되지 않아 필요할 때만 호출됨.
 




반응형

댓글