Android Jetpack이란?
개발자가 관심 있는 코드에 집중할 수 있도록 권장사항 준수, 상용구 코드 축소, 모든 Android 버전 및 기기에서 일관되게 작동하는 코드 작성을 돕는 라이브러리 모음
val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return
with (sharedPref.edit()) {
putInt(getString(R.string.saved_high_score_key), newHighScore)
apply()
}
apply() 대신 commit()을 쓰고 싶다면 edit의 인자로 true를 넣어주면 된다.
passwordPreferences.edit(true) {
putString("password", passwordFromUser)
}
apply()와 commit()의 차이는?
- apply()는 변화된 부분만 SharedPreferences에 저장하고 디스크에는 비동기적으로 커밋함 (그래서 실패가 발생해도 모를 수 있음)
- commit()은 디스크에 동기적으로 데이터를 저장함
⚠️ 기본 스레드라면 commit() 대신 apply()를 쓸 것 (∵ UI 렌더링이 중지될 수 있음)
val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return
val defaultValue = resources.getInteger(R.integer.saved_high_score_default_key)
val highScore = sharedPref.getInt(getString(R.string.saved_high_score_key), defaultValue)
[공식 문서 참고]
1. 데이터 및 파일 저장소 개요
2. 키-값 데이터 저장
3. 저장된 값 사용
4. SharedPreferences.Editor