SharedPreferences이란?

남궁현·2023년 9월 13일
0

Android

목록 보기
14/15

SharedPreferences

  • SharedPreferences는 안드로이드에서 Map과 같이 key-value 방식으로 간단하게 데이터를 저장하는 방식

  • 구현이 쉬우면서 app이 재부팅되도 데이터가 유지된다.

  • 프로그램의 설정 정보 (사용자의 옵션 선택 사항 이나 프로그램의 구성 정보)를 영구적으로 저장하는 용도로 사용

  • SharedPreferences 클래스

    • Preferences의 데이터(키-값 세트)를 관리하는 클래스
    • 응용 프로그램 내의 액티비티 간에 공유하며, 한쪽 액티비티에서 수정 시 다른 액티비티에서도 수정된 값을 읽을 수 있다.
    • 응용 프로그램의 고유한 정보이므로 외부에서는 읽을 수 없다.
  • getSharedPreferences (name, mode)

    • 여러개의 Shared Preference파일들을 사용하는 경우
    • mode : 파일의 공유 모드
      • MODE_PRIVATE: 생성된 XML 파일은 호출한 애플리케이션 내에서만 읽기 쓰기가 가능
      • MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE은 보안상 이유로 API level 17에서 deprecated됨
    	val sharedPref = activity?.getSharedPreferences(
      getString(SharedPrefFile, Context.MODE_PRIVATE)
      
      
  • 첫번째 인자의 값은 SharedPreferences를 사용하기 위해서 사용하는 ID와 비슷한 역할이다. 대부분 모든 클래스에서 공통적인 패키지 이름으로 한다.

  • MODE_PRIVATE는 동일한 사용자 ID를 공유하는 모든 응용프로그램만 액세스할 수 있는 기본 모드이다.

    	SharedPreferences.Editor editor = mPreferences.edit();
    	editor.putString(tag,"");
    	editor.commit();
  • SharedPreferences를 편집하기 위해 에디터를 생성하고 넣을 key,value값을 에디터를 통해 넣은 후 commit(저장)

SharedPreferences test = getSharedPreferences(SharedPrefFile, MODE_PRIVATE);

int firstData = test.getInt("First", 0);
  • 값을 가져올 때는 SharedPreferences 인스턴스를 공통된 SharedPrefFile값을 이용하여 생성한 후, getInt나 getString을 이용하여 특정한 값을 가져올 수 있다.

    	SharedPreferences mPreferences = getSharedPreferences(SharedPrefFile, MODE_PRIVATE);
      Map getSharedPreferences=mPreferences.getAll();
  • 모든 값을 가져오고 싶을 땐 getAll을 통해 Map에 값을 가져올 수 있다.
val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE)
  • getPreferences
    • 한개의 Shared Preference 파일을 사용하는 경우
    • Activity 클래스에 정의된 메소드 이므로, Activity 인스턴스를 통해 접근 가능
    • 생성한 액티비티 전용이므로 같은 패키지의 다른 액티비티는 읽을 수 없다.
    • 액티비티와 동일한 이름의 XML 파일 생성
profile
신입 안드로이드 개발자

0개의 댓글