[Android] SharedPreferences ?

한 강·2022년 2월 3일
0

안드로이드

목록 보기
4/6

데이터 저장

안드로이드 앱 개발을 진행하다 보면 데이터를 저장하는 방법이 뭐가있지?
앱을 완전히 끈 다음에 다시 켜도 데이터를 간직하고 싶다 라는 생각을 갖게 된다. 그래서 오늘은 안드로이드 앱에서 데이터를 저장하는 방법 중 하나인 SharedPreferences 를 사용 해보려 한다.

SharedPreferences?

SharedPreferences 란 데이터를 파일로 저장하여 파일을 앱 폴더 내에 저장하여 앱을 삭제하거나 혹은 앱의 데이터를 삭제하지 않는 한 남아 있는 데이터 저장 방법이다.
값 저장에는 Room or Sqllite 등 여러가지 방법이 있겠지만 간단한 값 저장하는 데에 DB를 만들기에는 부담스럽기에 SharedPreferences 는 간단한 값 저장 하는데에 도움이 되며 보통은 자동로그인에 사용된다.

  • 데이터 저장 경로 ( data/data/package_name/shared_prefs/..)
  • Key-Value 방식 ( "key","value")
  • Mode에 따라 사용 가능 범위가 달라짐

저장 가능한 자료형

  • Boolean
  • Int
  • Float
  • Long
  • String

사용법

SharedPreferences에 데이터 저장하기

var prefs = getSharedPreferences("name", Mode 값)
var editor: SharedPreferences.Editor = prefs.edit()
	editor.putString("key", value)
    editor.apply()

SharedPreferences의 데이터 불러오기

var prefs = getSharedPreferencs("name" Mode 값)
var value = prefs.getString("key",default값)

SharedPreferences의 특정 데이터 삭제하기

var prefs = getSharedPreferencs("name" Mode 값)
var editor: SharedPreferencs.Editor = prefs.edit()
	editor.remove("key")
    editor.apply()

SharedPreferences의 모든 데이터 삭제하기

var prefs = getSharedPreferencs("name" Mode 값)
var editor: SharedPreferencs.Editor = prefs.edit()
	editor.clear()
    editor.apply()

2022-02-16 추가


  • SharedPreferences 는 key, value 형식으로 저장되기 때문에, 순서가 보장되지 않아, 추출할 때 키가 아닌 all() 로 뽑아낼 경우 순서대로 나오지 않는다.
profile
안드로이드 개발자 & Flutter 개발자

0개의 댓글