ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android] SharedPreferences
    안드로이드 2022. 3. 17. 17:00
    728x90
    반응형

    SharedPreferences란

    안드로이드 앱은 SharedPreferences를 통해 Integer, String 타입의 간단한 데이터를 저장할 수 있습니다. 단순히 숫자 몇 개, 문자열 몇 개를 저장하기 위해 SQLite나 서버 DB를 이용하기에 부담스럽기 때문에 SharedPreferences를 사용하는 것이 적합합니다.

     

    특징👍🏻

    • SharedPreferences는 간단한 데이터를 앱의 개별 저장소에 xml파일로 저장
    • 앱이 삭제되기 전까지 저장한 데이터가 보존
    • SharedPreferences 객체를 생성할 때 파일 이름을 인자로 전달하여, 그 이름으로 xml파일이 생성
    • 데이터를 저장할 때는 key/value 형태로 저장
    • SharedPreferences는 put/get메소드를 제공하여 데이터를 저장하거나 읽을 수 있음

    사용 방법🤷🏻‍♂️

    SharedPreferences 객체 생성

    1. getSharedPreferences() : 이름으로 식별되는 SharedPreferences 파일이 여러 개 필요한 경우 이 메서드를 사용합니다. 이름은 첫 번째 매개변수로 지정되고 앱의 모든 context에서 이 메서드를 호출할 수 있습니다.
    2. getPreferences() : Activity에 SharedPreferences 파일을 하나만 사용해야 하는 경우 Activity에서 이 메서드를 사용합니다. 이 메서드는 Activity에 속한 기본 SharedPreferences 파일을 검색하기 때문에 이름을 제공할 필요가 없습니다.

     

    companion object {
        const val prefsName = "shared_preferences_example"
    }
    
    private lateinit var prefs: SharedPreferences
    
    override fun onCreate(savedInstanceState: Bundle?) {
        ....
        //SharedPreferences 객체생성
        //1. getSharedPreferences()
        prefs = getSharedPreferences(prefsName,Context.MODE_PRIVATE);
        //2. getPreferences()
        prefs = getPreferences(Context.MODE_PRIVATE);
    }

     

     

    값 저장하기🔍

    SharedPreferences 파일에 값을 저장하려면 SharedPreferences에서 edit()함수를 통해서 만들게 됩니다.

    putInt() 및 putString()과 같은 메서드를 사용하여 쓰려고 하는 키와 값을 전달합니다. 그런 다음 apply() 또는 commit()을 호출하여 변경사항을 저장합니다.

    val prefs = getSharedPreferences("shared_preferences_example",Context.MODE_PRIVATE) ?: return
    
    with (prefs.edit()) {
    	//"점수"라는 키값을 가진 데이터 80을 저장한다
        putInt("점수", 80)
        commit()
    }

    apply()는 메모리 내 SharedPreferences내 객체를 즉시 변경하지만 업데이트를 디스크에 비동기적으로 씁니다.

    또는 commit()을 사용하여 데이터를 디스크에 동기적으로 쓸 수 있습니다.

    그러나 commit()은 동기적이므로 기본 쓰레드에서 호출하는 것을 피해야 합니다. UI 랜더링이 일시중지될 수 있기 때문입니다.

     

    값 불러오기👀

    SharedPreferences에서 값을 검색하려면 getInt() 및 getString()과 같은 메서드를 호출하여 원하는 값에 키를 제공하고 키가 없으면 선택적으로 반환할 기본값을 제공합니다.

    val prefs = getSharedPreferences("shared_preferences_example",Context.MODE_PRIVATE) ?: return
    
    //키가 없으면 선택적으로 반환할 기본값
    val defaultValue = 60
    //"점수"라는 키값을 가진 데이터를 가져온다
    val highScore = prefs.getInt("점수", defaultValue)

    값 삭제하기🙅🏻‍♂️

    val prefs = getSharedPreferences("shared_preferences_example",Context.MODE_PRIVATE) ?: return
    
    with(prefs.edit()){
        //"점수"라는 키값을 가진 데이터를 삭제합니다.
        val highScore = remove("점수")
        commit()
    }
    출처
    https://velog.io/@dlrmwl15/안드로이드-SharedPreferences
    https://developer.android.com/training/data-storage/shared-preferences?hl=ko
    반응형

     

    728x90
    반응형

    댓글

Designed by ZibroTistory.