Android中Sharedpreferences跨进程时数据刷新不及时

在最近想买中需要在service里面通过Sharedpreferences进行保存用户登录信息,访问模式设为了MODE_PRIVATE,结果在登录成功保存信息然后通知BroadcastReceiver时无法实时读取,每次当数据在Activity中改变时,在BroadcastReceiver中读取的都是上一次的值,而对应的XML文件中的数据已经改变了,并且只有手动清除应用程序的缓存后,才可以读取到修改后的值。弄了半天才发现问题所在:
我的service在AndroidMainfest.xml中注册了android:process=”:remote”属性,即作为一个独立的进程来启动,因此启动service后二者不在一个进程中,所以需要把Sharedpreferences的访问模式改为MODE_MULTI_PROCESS,这样便可以实时读取Sharedpreferences中修改后的值。

另外,我还试了下,把AndroidMainfest.xml中的android:process=”:remote”这一行去掉,把Sharedpreferences的访问模式改为MODE_PRIVATE,这样也可以实时读取了

在备注一下Sharedpreference的mode类型

原文:https://blog.csdn.net/mixin716/article/details/49250255?utm_source=copy

你可能感兴趣的:(Android中Sharedpreferences跨进程时数据刷新不及时)