Programming/Android

[안드로이드] SharedPreferences란? 사용법 알아보기

devssun 2017. 7. 24. 01:00
728x90
반응형



#App의 간단한 DB 역할을 하는 SharedPreferences 알아보기


App에서 간한하게 저장해야할 데이터가 있는데 db를 사용하긴 좀 그럴 때

환경설정이나 간단한 텍스트 정도는 sharedpreferences를 이용하면 된다


Key, Value의 형태로 데이터를 저장할 수 있는 구조이며

data/data/PACKAGE_NAME/shared_prefs에 xml파일로 저장된다

이 경우 루팅하지 않은 경우 ADM에서 확인이 불가능하다

AVD에서 테스트 중이라면 확인 가능하다



1. 저장하기(write)

write할 때는 SharedPreference..Editor() 클래스 객체를 생성하여

editor변수에 set___(key, value) 메소드를 사용하여 저장한다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 // write 클래스
    public void writeSharedPreference(View view){
        // SharedPreferences 가져오기
        sharedPreferences = this.getSharedPreferences("SETTINGS", Context.MODE_PRIVATE);
 
        // Editor 가져오기
        editor = sharedPreferences.edit();
 
        // 저장할 데이터에 대해 key, value로 저장하기
        editor.putInt("PERIOD", samplingPeriod);
        editor.putBoolean("ALERT", alertSwitch.isChecked());
        editor.putBoolean("SENSING", sensingSwitch.isChecked());
 
        // commit
        editor.commit();
    }
cs




2. 불러오기(read)

get___(key, default value)메소드를 사용하여 불러온다

get()메소드에서 default value를 설정하는 이유는

sp에서 가져온 데이터가 없을 경우를 대비하여 기본 값으로 설정하는 것이다

1
2
3
4
5
// sharedPreferences 데이터 가져오기
sharedPreferences2 = getSharedPreferences("SETTINGS", Context.MODE_PRIVATE);
int period = sharedPreferences2.getInt("PERIOD"-1);
boolean alert = sharedPreferences2.getBoolean("ALERT"false);
boolean sensing = sharedPreferences2.getBoolean("SENSING"false);
cs



위와 같은 방법으로 간편하게 영구적으로 저장되는 데이터의 구현이 가능하다

하지만 앱을 지우게 되면 날아가는 단점이 있다~


반응형