Tuesday, August 14, 2018

안드로이드 앱 재시작시 SharedPreferences에 저장한 값이 달라지는 문제 해결방법

SharedPreferences 사용시 값 저장 문제 해결 방법

개발 중에 데이터베이스 이외에 간단한 데이터를 저장해야 할 때가 있습니다. 이럴 때 SharedPreferences를 사용하여 값을 저장하고 해당 값이 존재하는지 체크하는 로직을 구현할 수 있습니다.

예를 들어, [1, 2, 3] 등의 값을 넣고 앱을 종료 후 재진입해보면 [1, 2, 3] 등의 값이 잘 들어있는 것을 확인할 수 있습니다. 그러나 앱의 작업(task)을 완전히 종료하고 다시 진입해보면 마지막에 넣은 '3'이 빠져서 [1, 2]만 남아 있는 상황을 경험할 수 있습니다.

저도 이 문제에 대해서 혼란스러웠으며 해결책을 찾기 위해 구글링을 했습니다. 그 결과 PreferenceManager라는 키워드를 발견하게 되었습니다.

getSharedPreferences(name,mode) 메소드 대신 PreferenceManager.getDefaultSharedPreferences(this) 메소드를 사용하여 변경하고 테스트 한 결과, 앱의 작업(task)를 완전히 종료한 후에도 올바르게 동작함을 확인할 수 있었습니다.

왜 기존 SharedPreferences가 동작하지 않았는지에 대한 원인은 아직 명확히 파악되지 않았으나 계속해서 조사 중입니다. 조사 결과와 추가적인 정보는 추후 포스팅으로 공유하도록 하겠습니다.


0 개의 댓글:

Post a Comment