목차
어플 사용환경
어플이 시작할 때마다 값을 설정해 줘야 한다면 엄청 귀찮아 질겁니다.
아무리 좋은 기능이 있다해도 그러하다면 사용자에게 외면 받을 수있습니다.
어플 종료시 마지막사용환경을 저장하여, 다음에 어플 시작시 그 환경을 유지하는 방법을 알아보겠습니다.
저장옵션
사용환경을 저장하는 방법은 여러가지 입니다.
- Shared Preferences : 윈도우에서 레지스트리 같은 환경에 저장
- Internal Storage : 내부 저장공간
- External Storage : 외부 저장공간에 저장( 추가 SD Card 등)
- SQLite Databases : DB 에 저장
- Network Connection : 네트워크에 저장
지금 예제에서는 작은 용량만 사용하는 거라서 “Shared Preferences”를 사용해 보겠습니다.
저장
setup 이라는 공간을 지정하여 저장하겠습니다.
public static final String PREFS_NAME = "setup";
setup 이라는 공간에 silentMode 를 mSilentMode 값을 저장해 봅니다.
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
boolean mSilentMode = true;
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
읽기
setup 이라는 공간에서 값을 가져오겠습니다.
public static final String PREFS_NAME = "setup";
setup 이라는 공간에 silentMode 를 mSilentMode 값을 저장해 봅니다.
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
최종 예제
public class Calc extends Activity {
public static final String PREFS_NAME = "setup";
@Override
protected void onStop(){
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
}
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
}
}
SharedPreferences
putString, putBoolean, putFloat, putInt, putLong, putStringSet 등 다양한 형태를 제공합니다.

