Activity와 Service 혹은 두 개의 프로세스에서 SharedPreferences 값 공유하기

Gingerbread (Android 2.3)  이전 버전에서는 SharedPreferences에 저장된 값을 여러 프로세스나 Activity와 Service 사이에서 사용할 수 있었습니다.  예를 들어 PreferenceActivity에서 변경한 값을 바로 Service 프로세스에서 가져와 사용할 수가 있었죠.  하지만 최근 안드로이드 버전 (Gingerbread 이 후)에서는 명시적으로 설정하지 않는 한 같은 방식으로 사용할 수가 없습니다.   하나의 프로세스에서 SharedPreferences의 값을 변경해도 계속 이전 값만을 불러오게 됩니다.

이 문제를 해결하려면, 변경된 값을 불러오는 프로세스에서 SharedPreferences를 새로 로딩할 때 아래와 같이 설정해줘야 합니다.  이 문제를 해결하는데 며칠을 구글링했네요….  ㅠㅜ  동일한 문제를 겪고 계신 개발자분들에게 도움이 되었으면 좋겠습니다.

SharedPreferences myPrefs 
  = context.getSharedPreferences("myPrefs", Context.MODE_MULTI_PROCESS);
  1. 감사합니다! 덕분에 고민하던 문제 해결하고 갑니다~! ^^

  2. 정말 미친듯이 고민했습니다………….
    정말정말 감사합니다…..생명의 은인…………

  3. 정말 감사합니다! 한참동안 해매던건데 ㅠㅠ

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>