SharedPreferences에 값이 제대로 들어가는 지 테스트했었는데
테스트 할 당시에는 제대로 값이 남아있는 듯 보였으나 나중에 스마트폰을 재부팅한 뒤 다시보니
아무런 데이터도 저장되어있지 않은 것을 발견하였다.
확인해본 결과 환경설정->어플리케이션 메뉴에서 어플을 찾아 강제종료버튼(작업관리자에 표시되지 않더라도 활성화되어있다)을 누르고 나면
다시 실행했을 때 SharedPreferences 값이 하나도 남아있지 않음을 알 수 있었다.
메모리 혹은 임시파일 형태로 저장되는 것이라고 추측된다.
해결 방법은 다음과 같다.
SharedPreferences의 Editor를 사용하기 전에 Editor 객체의 clear() 메소드를 호출했더니 문제가 해결되었다.
SharedPreferences.Editor ePref = pref.edit(); ePref.clear(); ePref.putStringSet(XXX , XXX); ePref.apply();
Editor에 값을 갱신한 후 commit() 또는 apply()를 빠뜨리면 아예 저장이 되지 않으므로 주의하자.
또한 clear()를 호출한 후에는 SharedPreferences 값이 지워지므로 보존해야 할 데이터는 따로 마련한 변수 등에 저장해두어야 한다.
'Development > Failure Log' 카테고리의 다른 글
java.io.IOException: Prepare failed.: status=0x1 (0) | 2013.06.11 |
---|---|
java.io.StreamCorruptedException: invalid stream header: 6572726F (0) | 2013.04.25 |
Eclipse ADT 설치 후 아이콘 및 메뉴가 안 보일 때 (8) | 2013.03.01 |
"\ndk-build.cmd": Launching failed (0) | 2013.01.01 |
openCV webcam 다중 연결 (0) | 2012.12.21 |