Programming/Android

[Android] 안드로이드 SharedPreference 사용하기

쌍쌍바나나 2016. 3. 26. 23:47
반응형

들어가며

  안드로이드에서 코딩을 하다보면 앱이 종료되도 값을 저장해 유지해야 할때가 많습니다. 만약 앞으로 설명해야 할 SharedPreference가 없다면, 파일입출력을 통해서 데이터를 저장을 해야하는 번거로움이 있습니다. 파일 입출력 없이 간단한 데이터를 Key, Value로 저장할 수 있다면 쓰기/읽기가 수월할 것입니다. 사용 예로는 안드로이드에서 Setting값을 항상 내가 설정한 값으로 유지해야하는 경우가 있는데, 이때 SharedPreference를 사용하면 문제를 쉽게 해결 할 수 있습니다. 하지만 앱을 제거 후 새로 설치되면 SharedPreference의 값은 초기화가 됩니다.

사용방법

  SharedPreferences는 안드로이드에서 제공하고 있습니다. Context를 통해서 값을 가져올 수 있습니다. 만약에 Activity에서 한다면 바로 getSharedPreferences를 통해서 가져올 수 있습니다. 첫번째 파라미터는 SharedPreference 의 이름을 정해줍니다. 이름은 파일 입출력에서는 파일 이름이라고 생각하면 쉽습니다. 두번째는 Mode를 설정할 수 있습니다.

Mode는 총 3가지를 지원합니다.

  • MODE_PRIVATE
  • MODE_WORLD_READABLE
  • MODE_WORLD_WRITEABLE
  Mode는 접근 권한이라고 생각하시면 됩니다. PRIVATE은 해당 앱에서만 접근을 가능하게 해주고, 나머지 WORLD의 Keyword가 속해 있는 MODE는 다른 앱에서 접근이 가능합니다. 만약 다른 앱에서 sharedPreference의 값을 쓰고, 읽는다면 보안상에 문제가 있을 수도 있으니 잘 선택해서 사용하시면 됩니다.

  SharedPreference를 쓰기/읽기를 할때마다 아래 예제 코드를 작성하면 코드의 중복이 많기 때문에, 저같은 경우에는 PreferenceHelper.java를 생성해서 쓰기/읽기를 관리하는 클래스를 만들어서 사용합니다. 참고해서 사용하세요.

쓰기

SharedPreferences prefs = context.getSharedPreferences("PrefName", context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(token, text);
editor.commit();

읽기

SharedPreferences prefs = context.getSharedPreferences("PrefName", context.MODE_PRIVATE);
String text = prefs.getString(token, "") 


반응형