본문 바로가기
안드로이드 코틀린

[Kotlin][Android] 쉐어드 프리퍼런스 사용하기

by teamnova 2022. 5. 1.
728x90

키-값 데이터 저장 을 할때 안드로이드에서 제공하는 쉐어드 프리퍼런스라는 것에 대해 오늘 사용해보겠습니다.

 

 

저장하려는 키-값 컬렉션이 비교적 작은 경우 SharedPreferences API를 사용해야 합니다. SharedPreferences 객체는 키-값 쌍이 포함된 파일을 가리키며 키-값 쌍을 읽고 쓸 수 있는 간단한 메서드를 제공합니다. 각 SharedPreferences 파일은 프레임워크에서 관리하며 비공개이거나 공유일 수 있습니다.

 

val sharedPref = activity?.getSharedPreferences(
        getString(R.string.preference_file_key), Context.MODE_PRIVATE)

공유 환경설정 파일의 이름을 지정할 때 앱에 고유하게 식별할 수 있는 이름을 사용해야 합니다. 파일 이름 앞에 애플리케이션 ID를 붙이면 쉽습니다. 예를 들면 다음과 같습니다. "com.example.myapp.PREFERENCE_FILE_KEY"

또는 활동에 공유 환경설정 파일이 하나만 필요하면 다음과 같이 getPreferences() 메서드를 사용할 수 있습니다.

 

val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE)

 

 

 

공유 환경설정에 쓰기

공유 환경설정 파일에 쓰려면 SharedPreferences에서 edit()을 호출하여 SharedPreferences.Editor를 만듭니다.

 

val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return
with (sharedPref.edit()) {
    putInt(getString(R.string.saved_high_score_key), newHighScore)
    apply()
}

 

 

공유 환경설정에서 읽기

공유 환경설정 파일에서 값을 검색하려면 getInt()  getString()과 같은 메서드를 호출하여 원하는 값에 키를 제공하고 키가 없으면 선택적으로 반환할 기본값을 제공합니다. 예를 들면 다음과 같습니다.

 

val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return
val defaultValue = resources.getInteger(R.integer.saved_high_score_default_key)
val highScore = sharedPref.getInt(getString(R.string.saved_high_score_key), defaultValue)