ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Android SharedPreferences 사용법
    카테고리 없음 2019. 12. 26. 10:58

    쓰는건데?

    예를 들어 앱에 자신의 이름으로 무언가를 저장을 했다.

    "저장"이란 다시 앱을 끄고 켰을 시에도 내 이름이 보관되어 있다는 것이다.

    사라지지 않고 "저장"하는 간단한 곳이 필요한데 그게 SharedPreferences

    보통 옵션이나 세팅이 컴퓨터 용어로 preference라고도 사용된다.

    그래서 세팅이나 옵션 저장용으로 저런 이름이 탄생하지 않았을까?
    컴퓨터 용어 사전 확인

    mac system Preferences

    간단한 사용법

    저장은 ["KEY" : "VALUE"] 형식이다
    ["Name":"BlueOrangMan"], ["COLOR":"BLUE"]

     

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

    넣기

    SharedPreferences.Editor editor = prefs.edit();

    editor.putString("Name", "BlueOrangMan");

    editor.putString("COLOR", "BLUE");

    editor.apply();

     

    가져오기

    String wallPaper = myPrefs.getString("Name", null);//null "Name"키가 존재하지 않을때 반환

     

    자세한 설명
     

    • getPreferences(int mode)
      • 파일명 지정하지 않음. Activity 이름으로 저장
      • 생성한 Activity를위한 저장공간, 다른 activity에서는 이용불가
      • Mode
        • MODE_PRIVATE: 자기 앱 내에서 사용. 외부 앱에서 접근 불가
        • MODE_WORLD_READABLE: 외부 앱에서 읽기 가능
        • MODE_WORLD_WRITEABLE: 외부 앱에서 쓰기 가능

     

    • getSharedPreferences(String name, int mode)
      • 매게변수  name으로 저장
      • 다른 activity에서 공유가능
      • 각각의 이름으로 저장할만한 상황일 사용
         
    • PreferenceManager.getDefaultSharedPreferences(Context context)
      • 파일명 지정하지 않음. 앱의  팩키지명으로 저장
      • 다른 컴포넌트에서도 이용
      • 주로 편하게 사용
         
    • 넣기
      • putBoolean(String key, boolean value)
      • putFloat(String key, float value)
      • putInt(String key, int value)
      • putLong(String key, long value)
      • putString(String key, String value)
         
    • 가져오기
      • getBoolean(String key, boolean defValue)
      • getFloat(String key, float defValue)
      • getInt(String key, int defValue)
      • getLong(String key, long defValue)
      • getString(String key, String defValue)
         
    • Apply vs Commit
      • Apply() API9에서 추가. 스레드를 block하지 않는다. 비동기 처리
        주로
        사용
      • Commit() 스레드를 block처리. 동기 처리. 스레드작업하다 보면 다시 볼일이...   

    댓글

Designed by Tistory.