Android 개발을 하다보면 앱의 데이터들을 저장하고 관리해야 하는 상황이 존재합니다.
데이터의 양이 많거나 중요한 경우 서버나 DB에 저장을 하겠지만 앱의 설정값이나 문자열 같은 데이터는 스마트폰에 저장하여 활용할 수 있도록 도와주는 기능입니다.
MODE_PRIVATE : 생성한 Application에서만 사용 가능
MODE_WORLD_READABLE : 외부 Application에서 사용 가능(only Read)
MODE_WORLD_WRITEABLE : 외부 Application에서 사용 가능, 읽기/쓰기 가능
getSharedPreferences(String, int) 메소드는 인스턴스를 검색하는데 사용됩니다.
SharedPreferences.Editor()에서 값을 편집하는데 사용됩니다.
SharedPrefereces 파일에 값을 저장 commit() 하거나 호출할 수 있습니다. commit은 값을 즉시 저장하는 반면 apply()는 비동기로 값을 저장합니다.
값 저장
val sharedPreference = getSharedPreferences("PREFERENCE_NAME",Context.MODE_PRIVATE)
var editor = sharedPreference.edit()
editor.putString("username","Anupam")
editor.putLong("l",100L)
editor.commit()
다음과 같이 앱내에서만 사용할 수 있도록 선언해주고 Anupam이라는 String 값을 username이라는 이름으로 저장하였습니다. 100L의 경우 l이라는 이름으로 저장하고 commit을 통해 작업을 완료합니다.
값 검색
sharedPreference.getString("username","defaultName")
sharedPreference.getLong("l",1L)
다음과 같이 key값을 통해 value들을 불러올 수 있다.
값 삭제
editor.clear()
editor.remove("username")
.clear()의 경우 SharedPreferences에 저장되어 있는 모두 코드를 지우는 코드이고
.remove의 경우 key값을 넣어 해당되는 데이터만 지우는 코드입니다.