[Android] SharedPreferences

강승구·2022년 12월 23일
0

SharedPreferences

안드로이드 앱 개발을 진행하다 보면 앱의 데이터들을 저장하여 관리해야 할 상황이 존재한다. 데이터의 양이 많거나 중요 데이터의 경우 서버나 DB에 저장해야겠지만, 간단한 설정 값이나 문자열 같은 데이터를 저장하기 위해 DB를 사용하기는 부담스럽기 때문에 SharedPreferences를 사용하는 것이 적합하다.


SharedPreferences의 특징

  • 보통 초기 설정값이나 자동 로그인 여부 등 간단한 값을 저장하기 위해 사용
  • Application에 파일 형태로 데이터를 저장한다.
  • Application이 삭제되기 전까지 저장한 데이터가 보존된다.
  • Key-value 방식

MODE의 종류

  • MODE_PRIVATE : 생성한 Application에서만 사용 가능하다.
  • MODE_WORLD_READABLE : 외부 App에서 사용 가능, But 읽기만 가능
  • MODE_WORLD_WRITEABLE : 외부 App에서 사용 가능, 읽기/쓰기 가능

사용 방법

1. 애플리케이션 Context로부터 SharedPreference에 값 저장하기

binding.saveBtn.setOnClickListener {
            val sharedPreference = getSharedPreferences("sp1", MODE_PRIVATE)
            val editor  : SharedPreferences.Editor = sharedPreference.edit()
            editor.putString("hello","안녕하세요")
            editor.putString("good bye","안녕히 가세요")

            editor.commit() // data 저장!
        }

2. 데이터 불러오기

binding.loadBtn .setOnClickListener {
            val sharedPreference = getSharedPreferences("sp1", MODE_PRIVATE)
            val value1 = sharedPreference.getString("hello", "데이터 없다1")
            val value2 = sharedPreference.getString("good bye", "데이터 없다2")
            Log.d("key-value", "Value 1 : " + value1)
            Log.d("key-value", "Value 2 : " + value2)

        }

3. 데이터 삭제하기

binding.deleteBtn.setOnClickListener {
            val sharedPreference = getSharedPreferences("sp1", MODE_PRIVATE)
            val editor = sharedPreference.edit()

            editor.remove("hello")
            // 전체 삭제는 editor.clear()
            editor.commit()
        }
profile
강승구

0개의 댓글