別プロセスでSharedPreferencesを参照する場合の更新情報取得方法についてメモ

SharedPreferencesを使いServiceで登録してActivityで開くや、その逆等の場合プロセスが違う事が原因か、最新情報を読み取れない事がある。
検証すると、読み込めるときもあるが違いがわからなかった。ただ実際のSharedPreferencesの中身は反映しているが、取得時にうまく取得できない、または前の情報を読み取るなどが見受けられたため、対応方法をメモする。

対応策

読み取るときにContext.MODE_MULTI_PROCESSを付ける事で解決する

        context.getSharedPreferences(PREFERENCE_NAME,Context.MODE_PRIVATE | Context.MODE_MULTI_PROCESS);

http://developer.android.com/reference/android/content/Context.html#MODE_MULTI_PROCESS

検証する限り、その他バグ等はいまのところ見当たらないため、これで良いと思う

その他おすすめの備忘録

コメントを残す