Context.MODE_MULTI_PROCESS

이전 글에서 Shared Preferences를 통해 데이터를 교환하는 것은 좋지 않다고 했지만, 써야할 때가 있다.  이 때 다른 app에서 값을 분명이 바뀌었는데 읽혀지지 않는 경우가 발생한다.  그렇다고 Shared Preference를 읽어오는데 실패하지도 않았고.

이 때는 아래와 같이

context.getSharedPreferences(__SHARED_PREFERENCES_NAME, Context.MODE_WORLD_READABLE | Context.MODE_MULTI_PROCESS);

MODE_MULTI_PROCESS를 넣도록하자. 이는 열려진 Shared Preference라도 수정사항이 발생하지 않았는지 읽어오기 전에 파일을 확인한다.

하지만, 역시 Shared Preferences를 통해 app간 데이터를 공유하지 않는 것이 제일 좋다. 다른 app에서 데이터를 읽을 수 있도록 도와주는 MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE은 api level 17에서 deprecated 되었다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.