ShapedPerference使用要注意的问题

来源:互联网 发布:php正则表达式匹配邮箱 编辑:程序博客网 时间:2024/06/07 06:21

这两天改同事拦截助手的bug可是改伤了,找了好久没找到错误原因,最终仔细想了想多进程共享数据的问题,终于找到问题,就是他在一个服务里面去读取配置文件,而修改配置文件是在一个activity里面,他设置了那个Service所在的进程与Activity不在同一个进程,导致设置之后的数据和读取的数据不一致。

SharedPreference最适合使用的地方就是保持配置信息,Android中专门有针对偏好设置的PreferenceFragment中的数据存储也是使用SharePreference来存储,默认的文件名为(your   packagename)_preferences.xml中。如果要修改默认文件名,可以通过在PreferenceFragment中使用getPreferenceManager().setSharedPreferencesName(“modify_default_preference”)来更改默认文件名。

这些都不重要哈,重要的是在多进程中修改同一个值出现的问题。为了方便描述,将第一次创建某个SharedPreference xml的进程描述为为主进程,次使用该xml文件的为次进程

不同进程是指在ddms中看到的不同进程,包括不同应用(shareduid同样在内哦),同一个应用中配置process产生的次进程。他们之间进行通信都会造成主进程修改值之后,在次进程读取到的还是第一次初始化时读取到的值。


0 0