목차
어플 사용환경
어플이 시작할 때마다 값을 설정해 줘야 한다면 엄청 귀찮아 질겁니다.
아무리 좋은 기능이 있다해도 그러하다면 사용자에게 외면 받을 수있습니다.
어플 종료시 마지막사용환경을 저장하여, 다음에 어플 시작시 그 환경을 유지하는 방법을 알아보겠습니다.
저장옵션
사용환경을 저장하는 방법은 여러가지 입니다.
- 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 등 다양한 형태를 제공합니다.