이전 글에서 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 되었다.