안드로이드 앱 개발을 진행하다 보면 앱의 데이터들을 저장하여 관리해야 할 상황이 존재한다. 데이터의 양이 많거나 중요 데이터의 경우 서버나 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()
}
설정 저장
'Programming > Android' 카테고리의 다른 글
[Android] RecyclerView (0) | 2022.11.26 |
---|---|
[Android] SQLite (0) | 2022.11.26 |
[Android] 유저 알림(Toast, Vibration, Beep) (0) | 2022.11.26 |
[Android] Permission (0) | 2022.11.26 |
[Android] Action Bar (0) | 2022.11.23 |