[안드로이드] SharedPreferences

김영훈·2021년 5월 25일
0
post-thumbnail

1. SharedPreferences란?

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

2. SharedPreferences의 특징

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

MODE의 종류

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

  • Mode


3. 사용 방법

  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 저장!
        }
  1. 데이터 불러오기
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)

        }
  1. 데이터 삭제하기
binding.deleteBtn.setOnClickListener {
            val sharedPreference = getSharedPreferences("sp1", MODE_PRIVATE)
            val editor = sharedPreference.edit()

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

예제 실행

  1. 불러오기 버튼 클릭 실행하면 저장한 값이 Log로 출력된다.

  2. 삭제 버튼 클릭시 저장한 값이 삭제되고 Default 값이 출력된다.

0개의 댓글