[kotlin] SharedPreferences

유지훈·2022년 6월 4일
0

kotlin 과거

목록 보기
2/19
post-custom-banner

앱의 데이터를 내부 저장소에 저장하는 방법 중 공유된 프리퍼런스(SharedPreferences)를 사용하는 방법이 있다. 플랫폼 API에서 제공하는 클래스로, 데이터를 키-값 형태로 저장할 때 사용한다. SharedPrefercenes는 앱의 간단한 데이터를 저장하는 데 유용하며 내부적으로 내장 메모리의 앱 폴더에 XML 파일로 저장된다.

SharedPreferences 객체를 얻는 방법

  • Activity.getPrefereneces(int mode)
  • Context.getSharedPreferences(String name, int mode)

SharedPreferences 객체를 획득할 때 지정하는 mode 값은 다음과 같다.

  • MODE_PRIVATE : 자기 앱 내에서 사용. 외부 앱에서 접근 불가
  • MODE_WORLD_READABLE : 외부 앱에서 읽기 가능
  • MODE_WORLD_WRITEABLE : 외부 앱에서 쓰기 가능

** Activity.getPreferences

val sharedPref = getSharedPreferences("my_prefs", Context.MODE_PRIVATE)

데이터를 저장하려면 다음과 같은 SharedPrefereneces.Editor 클래스의 함수를 이용해야한다.

  • putBoolean(String key, boolean value)
  • putInt(String key, int value)
  • ...

SharedPreferences.Editor 객체는 SharedPreferences의 edit() 함수로 얻는다. 그리고 Editor 객체의 put~으로 시작되는 함수를 이용해 데이터를 담으면 commit() 함수를 호출하는 순간 저장된다.

preference.edit().run {
	putString("password", passwordFromUser)
    commit()
}

commit() 함수 없이 실행하고자 하면 아래와 같이 작성하는 방법도 있다.

preference.edit(true) {
	putString("password", passwordFromUser)
}           

preference에 저장된 데이터를 가져오려면 SharedPreferences의 게터 함수를 이용하면 된다.

  • getBoolean(String key, boolean defValue)
  • getFloat(String key, float defValue)
  • ...
val data = sharedPref.getString("password", "000")

뒤의 "000"은 값이 없을 경우 default 값이다.

profile
RPA, Android App
post-custom-banner

0개의 댓글