[AndroidStudio] 변수 저장 읽기

어플 사용환경

어플이 시작할 때마다 값을 설정해 줘야 한다면 엄청 귀찮아 질겁니다.
아무리 좋은 기능이 있다해도  그러하다면 사용자에게 외면 받을 수있습니다.

어플 종료시 마지막사용환경을 저장하여, 다음에 어플 시작시 그 환경을 유지하는 방법을 알아보겠습니다.

 

저장옵션

사용환경을 저장하는 방법은 여러가지 입니다.

  1. Shared Preferences : 윈도우에서 레지스트리 같은 환경에 저장
  2. Internal Storage : 내부 저장공간
  3. External Storage : 외부 저장공간에 저장( 추가 SD Card 등)
  4. SQLite Databases : DB 에 저장
  5. 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 등  다양한 형태를 제공합니다.

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다