운기의 블로그
안드로이드 - SharedPreference 본문
코틀린으로 넘어가면서
그동안 간단한 데이터를 저장하는데 사용했던 쉐어드 프리퍼런스에 간략하게 적어보려고한다.
1. 안드로이드 저장소
안드로이드에서는 사용자 데이터를
기기의 파일,
키 - 값 쌍,
데이터베이스,
기타 데이터
유형으로 보존하고 다른앱과 기기 간에 데이터를 공유할 수 있다.
각각의 유형은 사용하는 시점이 다르다.
2. SharedPreference
ShardPreference 비교적 적은 데이터를 저장하는데 사용이 되며
키-값을 쌍을 이용해서 데이터를 저장하게 된다.
저장된 데이터는 모바일에서 데이터 삭제를 하지 않는 이상 데이터가 유지되는 장점도 있다.
그럼 쉐어드 프리퍼런스 사용법에 대해서 알아보자
3. SharedPreference 사용법 - 자바
쉐어드 프리퍼런스를 사용하기 위해서는 쉐어드 프리퍼런스 파일을 생성하거나 생성된 파일을 접근해서 데이터를 가져와야 한다.
아래의 이미지를 보자
private SharedPreferences sharedPreferences;
private SharedPreferences.Editor editor;
SharedPreferences 를 선언해주고 데이터를 저장하기 위해 SharedPreferences 의 Editor를 선언해준다.
sharedPreferences = getSharedPreferences("pref", Context.MODE_PRIVATE);
사용될 SharedPreferences의 이름과 현재 앱에서만 데이트를 사용하겠다는 MODE_PRIVATE를 넣어준다.
editor = sharedPreferences.edit();
sharedPreferences를 보면 edit 에 선언되어있는 메서드를 사용하기 위해
선언된 editor에 edit()을 선언해준다.
int testInt = 111;
editor.putInt("test", testInt);
editor.apply();
저장하고 싶은 값을 "test" 키와 testInt 값으로 넣어주고 apply()로 저장을 해준다.
※ apply 말고도 commit 도 존재
apply와 commit 의 차이점은 비동기와 동기의 차이점이다.
apply의 경우에는 비동기처러로 데이터를 저장하는 반면에 commit은 동기적으로 저장하기 때문에 main Thread에서 처리하는건 피해야한다.
int prefInt = sharedPreferences.getInt("test", 0);
Log.d("TAG", String.valueOf(prefInt));
그 이후에 SharedPreferences에 저장된 키값인 "test"를 호출, 만약에 저장된 값이없다면 default 값으로 0으로 가져오게된다. 그래서 가져온 값을 출력한 결과
로그에 출력되는걸 확인 할 수 있다.
4. SharedPreference 사용법 - 코틀린
코틀린스럽게 짠 코드이다.
내부를 확인해보면 edit 안에 매개변수로 commit에 대한 여부를 Boolean 값으로 받아주고 있다.
true 인 경우에는 commit을 사용, 아닌 경우에는 apply를 사용해서 저장하게 된다.
'안드로이드' 카테고리의 다른 글
안드로이드 - ROOM 사용하기 (0) | 2022.05.02 |
---|---|
안드로이드 - tableLayout 자동 정렬 (0) | 2022.04.09 |
안드로이드 - 폰트 추가하기 (0) | 2022.03.31 |
안드로이드 - #4 ConstraintLayout (0) | 2022.03.29 |
안드로이드 - #3 ConstraintLayout (0) | 2022.03.29 |