Data cache in Shared Preference

2019-04-29 03:19发布

I have 2 processes in my application. From one process i save data in to SharedPreferences. From second process - retrieve. When i retrieve data, i receive SharedPreferences with old data(i check xml file and see, that currently data in file and data that was received are different). It looks like this data was cached. I changed saving methods (commit/apply) but no result. PS: just for example http://pastebin.com/Zx2ffvSg

//saving
{ ...
 SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_PRIVATE);
    SharedPreferences.Editor prefsEditor = myPrefs.edit();
    prefsEditor.putString(MY_NAME, "Sai");
    prefsEditor.putString(MY_WALLPAPER, "f664.PNG");
    prefsEditor.commit();
... }

//retrieving
// when i call getData() I put "this" as argument.
public void getData(Context context){
SharedPreferences myPrefs = context.getSharedPreferences("myPrefs", MODE_PRIVATE);
...}

1条回答
ゆ 、 Hurt°
2楼-- · 2019-04-29 04:01

The solution is add to neccesary flags Context.MODE_MULTI_PROCESS flag when open shared preference (Available in API Level 11 and up)

查看更多
登录 后发表回答