기타치는 개발자

[Android]간단한 프리퍼런스 사용하기 본문

안드로이드

[Android]간단한 프리퍼런스 사용하기

던킨팬더 2016. 5. 31. 09:51

안드로이드에서 DB를 생성하여 데이터를 저장 및 관리를 하게됩니다.  하지만 간단한 설정값(push 허용, 자동로그인여부) 등의 값들은 DB를 생성하고 관리하는데 너무 비효율적인면이 있습니다. 

이럴경우에 SharedPreferences를 사용하여 간단한 값 관리를 할수있습니다.

간단한 사용은 아래와 같습니다

저장 : 

1
2
3
4
5
6
 
SharedPreferences prefs = getSharedPreferences("preferrence_name", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("key", text);
editor.commit();
 
cs

호출 :

1
2
SharedPreferences prefs = getSharedPreferences("preferrence_name", MODE_PRIVATE);
String text = prefs.getString("key", "");
cs

SharedPreferences 에 "preferrence_name" 으로 구분되어 저장되고 

값은 KEY_MY_PREFERENCE  값에 키를 구성하여 저장 또는 불러온다 . 

실제로 개발 문서에 아래와같이 되어있습니다. 

Note: This class does not support use across multiple processes.

실제로 여러 프로세스에서 동시에 사용 불가능함 으로 싱글톤 객체로 모듈을 생성 후 사용하시면될것같습니다 

간단한 모들 소스는 아래와 같습니다.


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
public class PreferenceUtil {
 
 
   //프리퍼런스 KEY값
   public static final String PREFERENCE_NAME="preference_nm";
   private static PreferenceUtil preferencemodule = null;
   private static Context mContext;
   private static SharedPreferences prefs;
   private static SharedPreferences.Editor editor;
 
   public static PreferenceUtil getInstance(Context context) {
      mContext = context;
 
      if (preferencemodule == null) {
         preferencemodule = new PreferenceUtil();
      }
      if(prefs==null){
         prefs = mContext.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
         editor = prefs.edit();
      }
      return preferencemodule;
   }
 
 
   public void putIntExtra(String key, int value) {
      editor.putInt(key, value);
      editor.commit();
   }
 
   public void putStringExtra(String key, String value) {
      editor.putString(key, value);
      editor.commit();
   }
 
   public void putLongExtra(String key, long value) {
      editor.putLong(key, value);
      editor.commit();
   }
   
   public void putBooleanExtra(String key, boolean value) {
      editor.putBoolean(key, value);
      editor.commit();
   }
   
 
 
   public int getIntExtra(String key) {
      return prefs.getInt(key, 0);
   }
 
   public String getStringExtra(String key) {
      return prefs.getString(key, "");
   }
 
 
   public long getLongExtra(String key) {
      return prefs.getLong(key, 0);
   }
 
   
   public boolean getBooleanExtra(String key) {
      return prefs.getBoolean(key, false);
   }
 
   public void removePreference(String key) {
      editor.remove(key).commit();
   }
 
   public boolean containCheck(String key) {
      return prefs.contains(key);
   }
}     
cs


1
2
3
boolean autologin=PreferenceUtil.getInstance(this).getBooleanExtra("AUTOLOGIN");  //출력
 
PreferenceUtil.getInstance(this).putBooleanExtra("AUTOLOGIN",true);    //입력
cs