状况:##
存储一个键值对,值改变之后SharedPreferences读取的依然是之前的值,查看XML文件中的值发现改变成功了,但是就是只能读取一个值。
原因:##
我的SharedPreferences在服务中写的,服务中添加了android:process=":push"
的声明,另开一个进程运行。而SharedPreferences的权限又是PRIVATE。只能在本进程访问。
解决:##
更改SharedPreferences的权限声明 Context.MODE_MULTI_PROCESS
参考:##
Android中Sharedpreferences牵涉到跨进程时不能实时读取的问题
了解Android API中的SharedPreferences