«   2024/09   »
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
Archives
Today
Total
관리 메뉴

[위미르 개발팀] Android, iOS , Web 제작

[안드로이드]SharedPreference 사용법 본문

개발자료/Android

[안드로이드]SharedPreference 사용법

위미르개발팀 2017. 9. 24. 12:30

앱 개발시에 값을 메모리에서 삭제되면 같이 날아가는 값이 아니라 계속 가지고 있어야 하는 값들이 있을수 있습니다.


이때 이러한 값들이 일정하고 많다면 SQLite로 테이블을 만들어서 관리하면 되지만 이게 아닐경우 그렇게 까지 하면 너무 


번거로울수 있습니다.


그래서 안드로이드에서는 SharedPreference라는게 존재 합니다.


이것은 (키값,밸류) 형식으로 접근할수 있는 자료입니다.


파일로 저장되기때문에 어플이 메인메모리에서 삭제되어도 값은 남아있습니다.


사용법입니다.


먼저 객체를 생성합니다


SharedPreference pref = getSharedPreference(키값,모드)


모드는 이것을 다른앱에도 공유 해주겠느냐 하고 설정 해주는것입니다.


모드로는 세가지가 있습니다.



MODE_PRIVATE : 자기 앱내에서만 사용할때

MODE_WORLD_READABLE : 다른 앱에서 읽기 가능

MODE_WORLD_WRITEABLE : 다른 앱에서 쓰기 가능



하지만 다른앱에서 여기에 접근할일은 거의 없기때문에 MODE_PRIVATE으로 설정해줍니다.


그리고 여기에 값을 넣으려면 Editor를 생성해야합니다.


앞에서 pref라고 생성했기때문에 다음과 같이 할수 있습니다.


SharedPreference.Editor edit = pref.edit();


edit은 물론 이름이기때문에 마음대로 하시면 됩니다.


그리고 edit으로 값을 넣어줍니다.


평소에 변수로 사용하는 int,String,long,float등을 넣을수 있습니다.


이것도 ("키값",밸류) 형식으로 들어갑니다.


사용 예제 입니다.


1
2
3
4
5
6
7
8
9
10
11
Sharedpreference pref = getSharedPreferences("key", MODE_PRIVATE);
SharedPreferences.Editor edit = pref.edit();
int val0=11;
String val1 = "test";
edit.putInt("intkey",val0);
edit.putString("stringkey",val1);
edit.apply();
 
int val = pref.getInt("intkey",값이없을경우 받을값);
String str = pref.getString("stringkey",값이없을경우 받을값);
 
cs


처음 getSharedPreferences 할때 키값으로 넣는것은 그 자체의 키값입니다.

만약 그 키값으로 된 SharedPreference가 없다면 새로 생성합니다.


7번라인에 보면 apply()를 하고있는데 이걸 안해주면 값들이 적용이 안됩니다.

commit()을 할수도 있는데 commit()으로 적으면 안드로이드 스튜디오에서 apply()가 더 빠르니 apply쓰라고 

경고가 뜹니다.


9번라인부터는 앱이 재실행되어도 똑같은 결과를 얻을수 있습니다.


하지만 이것들은 파일로 저장되므로 스마트폰의 앱정보보기에서 데이터 삭제를 하시면 모두 삭제됩니다.


이것은 SQLite도 마찬가지이므로 알아두시기 바랍니다.





희 위미르에서는 모바일 어플리케이션(Android/iOS), Web 개발을 해드리고 있습니다.


문의 전화 : 070-4177-3962




Comments