例如本人用activity 对象 mainactivity 的context 获取了sharedpreferences对象,并putString(context, “demo”, “aaaa”);
接着用service 对象 myservice 的 context 获取sharedpreferences对象,getString(context, “demo”, “”);
接着用service 对象 myservice 的 context 获取sharedpreferences对象,getString(context, “demo”, “”);
这样得到的是”aaaa”,是正确的,但是接着在mainactivity中修改键为”demo”的值,改成”bbbb”
接下来再在myservice中获取键位”demo”的值,但还是”aaaa”,意思就是数据没有同步,但是本人用RE管理器查看配置文件,键为”demo”的值已经改为”bbbb”了….
而且本人在service中修改配置文件之后,activity再去读取,还是原来的数据,但是用RE管理器去查看,确实是修改了啊,是数据没同步吗?
解决方案:20分
本人之前也遇到过这样的问题,后面改成用handler同步数据了。假如LZ硬要用service的话,可以跟BroadCast搭配会方便些,当activity中数据改变,用广播发给服务。
解决方案:20分