간단하게 정보를 저장할 경우 SharedPreferences를 많이 사용하고 있다.
키-값으로 데이터를 저장하고 있으며 Int, Long, String, Double, Float, Boolean으로 저장 가능하다.
1. 사용 방법
val sharedPref = getSharedPreferences( "이름", Context.MODE_PRIVATE)
//저장
sharedPref.edit {
putString("이름","저장 정보") //String 형으로 저장
putInt("이름",0) //Int 형으로 저장
}
//값 꺼내기
sharedPref.getString("이름","") // sharedPref.getString("이름") 이렇게도 가능
sharedPref.getInt("이름",0)
1-1 값 가져오기 (예제 string)
public abstract String getString (String key, String defValue)
(defValue : String: Value to return if this preference does not exist. This value may be null. )
android developer를 보면 이렇게 나와있다.
기존에 저장했던 key의 값과 기존에 값이 없을 경우 가져오는 default값만 넣어주면 된다.
너무 쉽다 😀
1-2 값 저장하기 (commit/apply)
상단의 코드만 봐도 바로 쓸정도로 저장하는 코드는 어렵지 않다.
대신 여기에는 2가지의 저장 방법이 있다.
commit()은 모든 비동기 처리 / apply()는 동기 처리
commit은 모든 비동기 커밋이 완료될 때 까지 차단하기 때문에 저장하는 동안 UI가 멈추게 된다.
apply는 UI와 상관없이 바로 처리가 되지만 실패할 경우 알 수 없다.
// apply()
sharedPref.edit {
putString("이름","저장 정보")
}
// commit()
sharedPref.edit(true) {
putString("이름","저장 정보")
}
https://developer.android.com/reference/android/content/SharedPreferences.Editor?hl=ko#commit()
SharedPreferences.Editor | Android Developers
developer.android.com
1-3 모드(Operating mode)
모드에는 여러가지가 있다.(값에는 여러가지 있으나 현재는 하나만 쓰임)
기본적으로 쓰이는 MODE_PRIVATE가 있다.
같은 앱에서만 그 값을 사용할 수 있으며 타앱에서 접근할 수가 없다는 뜻!
(그 외 MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE, MODE_MULTI_PROCESS가 있으나 현재 다 deprecated 되었다. )
[참고]
https://developer.android.com/training/data-storage/shared-preferences?hl=ko
https://developer.android.com/reference/android/content/SharedPreferences?hl=ko
'개발 공부 > 안드로이드' 카테고리의 다른 글
android/kotlin Thread, runOnUiThread (0) | 2022.07.03 |
---|---|
android NumberPicker custom number/string 원하는 값으로 변경, wrapSelectorWheel (0) | 2022.07.03 |
[android] ripple drawable 버튼 클릭시 효과 (0) | 2022.04.12 |
[Android] 글자 밑줄, 기울임, 굵은꼴 (HTML 마크업 사용) / + 취소선 (0) | 2021.06.07 |
[Android Error] ImageView 이미지 안보임(+ tools) / 특수 문자 삽입 (0) | 2021.06.07 |