SharedPreferences?
SharedPreferences는 안드로이드에서 사용할 수 있는 내부 데이터 저장소이다.
개발 진행시 앱의 데이터들을 저장하고, 이들을 관리해야 하는 경우가 있을 수 있는데
이런 경우 중요하거나 많은 양의 데이터는 DB 또는 서버에 저장하는 방법을 사용할 수 있다.
하지만 간단한 데이터, 설정값 등을 DB를 상요해서 저장하기에는 애매하다고 생각할 수 있다.
이런 때를 위해서 안드로이드에선 SharedPreferences를 사용할 수 있다.
SharedPreferences는 데이터를 파일로 저장하는데, 해당 파일은 앱 폴더 내부에 저장되기 때문에
앱을 삭제하면 당연하게도 이 데이터는 같이 삭제된다. (파일 형식은 XML)
SharedPreferences는 데이터를 Key:Value형태로 기본형 타입 데이터만 저장할 수 있다.
(boolean, int, float등등)
예제
실제로 코드에서 SharedPreferences를 사용해보도록 하자.
사용하는 방법은 아주 간단한데, applicationContext에 접근해서 getSharedPreferences함수를 호출해주면 SharedPreferences객체를 반환한다.
val sf = applicationContext.getSharedPreferences("test", MODE_PRIVATE)
이때 파라미터가 두 개 들어가는데, 첫 번째는 SharedPreferences의 이름, 두 번째는 모드를 설정할 수 있다.
모드는 아래의 세 가지가 있었는데, 아래의 두 개는 API 17버전부터 Deprecated되었다.
MODE_PRIVATE : 외부 앱에서 접근 불가
MODE_WORLD_READABLE : 외부 앱에서 읽기 가능
MODE_WORLD_WRITEABLE : 외부 앱에서 쓰기 가능
아래에서 SharedPreferences에 데이터를 쓰고, 받아오는 코드를 확인해보도록 하자.
val sf = applicationContext.getSharedPreferences("test", MODE_PRIVATE)
sf.edit {
putBoolean("boolean", false)
putFloat("float", 1.0f)
putInt("int", 1)
putLong("long", 1L)
putString("string", "string")
}
val boolean = sf.getBoolean("boolean", false)
val float = sf.getFloat("float", 1.0f)
val int = sf.getInt("int", 1)
val long = sf.getLong("long", 1L)
val string = sf.getString("string", "")
데이터를 저장하는 키워드는 put이며 뒤에 자료형이 붙는다.
여기서 중요한 점은 SharedPreferences에는 Primitive Type데이터만 넣을 수 있다는 점이다.
데이터를 불러오는 키워드는 get이며 마찬가지로 뒤에 자료형이 붙는다.
여기서 중요한 점운 default값을 지정해주어야 한다는 점이다.
'안드로이드 > 이론관련' 카테고리의 다른 글
ANR(Application Not Responding) (0) | 2021.12.18 |
---|---|
View.GONE과 View.INVISIBLE의 차이 (0) | 2021.12.08 |
LayoutInflater(안드로이드) (0) | 2021.10.25 |
Annotation(어노테이션)? (0) | 2021.08.18 |
핸들러(Handler) (0) | 2021.07.07 |