Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

운기의 블로그

안드로이드 - SharedPreference 본문

안드로이드

안드로이드 - SharedPreference

운띠야 2022. 4. 8. 22:50

코틀린으로 넘어가면서 

그동안 간단한 데이터를 저장하는데 사용했던 쉐어드 프리퍼런스에 간략하게 적어보려고한다.

 


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를 사용해서 저장하게 된다.