본문 바로가기
Android

[Android Studio, Java] (간단하게) SharedPreferenced가 무엇일까?

by 김마리님 2020. 10. 20.

참고 url :

[Android] SharedPreferences 사용하기

 

[Android] SharedPreferences 사용하기

이래저래 바쁘다는 핑계로 미루다가 오랜만에 포스팅을 하게 되었습니다. 벌써 새해가 밝았네요. 저만 시간이 빨리 가는 것처럼 느껴지는 건 아니겠죠? 모두 새해에는 좋은 일이 생겼으면 좋겠�

re-build.tistory.com

키-값 데이터 저장 | Android 개발자 | Android Developers

 

키-값 데이터 저장  |  Android 개발자  |  Android Developers

저장하려는 키-값 컬렉션이 비교적 작은 경우 SharedPreferences API를 사용해야 합니다. SharedPreferences 객체는 키-값 쌍이 포함된 파일을 가리키며 키-값 쌍을 읽고 쓸 수 있는 간단한 메서드를 제공합�

developer.android.com

간단한 상태값이나 문자열을 DB가 아닌, 파일 형태로 저장하는 함수.

이 파일을 앱이 가지고 있기 때문에 앱을 삭제하면 자동적으로 값이 삭제됨.

 

쓰임 예시 : 앱의 최초실행 여부(boolean 타입으로 넣으면 되겠죠?)

 

데이터를 타입으로 저장하고, key-value 형태로 저장한다.

※이 함수를 사용할 때, getSharedPreference의 첫 번째 매개값으로 애플리케이션의 이름, 두 번째는 mode값을 받는데, 이 때 mode는 세 가지가 있다.

MODE_PRIVATE는 자기 앱에서만 사용하는 디폴트 값이고,

MODE_WORLD_READABLE 및 MODE_WORLD_WRITEABLE는 API 17레벨부터 지원중단 되었으니.. PRIVATE만 쓴다고 생각해도 될 것 같다.

 

  • SharedPreferences를 등록할 때.

먼저 SharedPrefernece를 선언해야합니다. 이 때, KEY는 저장하는 파일의 KEY 값이 되겠죠?

(저는 Constants 클래스를 따로 만들어 static으로 선언하는 법을 배웠습니다(!). 이렇게 하면 일일히 KEY값을 외워 칠 필요 없이 바로 클래스에서 가져오면 되더라고요. 개인적으로 아주 편했어요.)

 

이 때, putInt 뿐만 아니라 putString, putBoolean 등 다양한 데이터 형태로 저장할 수 있다.

첫 번째 매개변수로는 key값, 두 번째 매개변수로는 value 값을 저장한다.

(여기서는 getString 값이 KEY 값이 되겠네요. 첫번째에 선언한 key값과는 다른 key입니다.)

SharedPreferences pref = context.getSharedPreferences(KEY, Activity.MODE_PRIVATE)
    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putInt(getString(R.string.saved_high_score_key), newHighScore);
    editor.commit();

 

 

  • SharedPreferences를 읽어올 때

마찬가지로 데이터 타입에 따라 getString, getInt 등으로 저장한다

이 때, 첫 번째 매개변수로는 key의 이름, 두 번 째는 값을 읽어오는데 실패하거나 오류가 나면 기본적으로 출력할 값을 의미한다.

SharedPreferences pref = context.getSharedPreferences(KEY, Activity.MODE_PRIVATE)
    int defaultValue = getResources().getInteger(R.integer.saved_high_score_default_key);
    int highScore = sharedPref.getInt(getString(R.string.saved_high_score_key), defaultValue);
반응형