关于使用service的上下文和activity来读取sharedpreferences的同步问题
比如我用activity 对象 mainactivity 的context 获取了sharedpreferences对象,并putString(context, "demo", "aaaa");
接着用service 对象 myservice 的 context 获取sharedpreferences对象,getString(context, "demo", "");
这样得到的是"aaaa",是正确的,但是,我接着在mainactivity中修改键为"demo"的值,改成"bbbb"
接下来再在myservice中获取键位"demo"的值,但还是"aaaa",意思就是数据没有同步,但是我用RE管理器查看配置文件,键为"demo"的值已经改为"bbbb"了....
求帮助,而且我在service中修改配置文件之后,activity再去读取,还是原来的数据,但是用RE管理器去查看,确实是修改了啊,是数据没同步吗?
我之前也遇到了这个问题,但是调研了一下发现,getSharedPreferences的时候的mode使用的是MODE_PRIVATE,这种mode不支持activity跟service之间的数据同步。把mode改成了MODE_MULTI_PROCESS,直接可以解决了activity修改share数据,service可以直接同步。
不知道是不是能够解决楼主的问题
http://bbs.csdn.net/topics/390608334
http://www.cnblogs.com/mengdd/p/5849201.html
MODE_MULTI_PROCESS过时了,自己这样写后,也没有解决问题。自己的解决方案,就是将保存到数据库中的值,更新,然后Service里面直接去读取数据库中的值。
关于使用service的上下文和activity来读取sharedpreferences的同步问题的更多相关文章
- C# 代码实现设置用户"NETWORK SERVICE"具有对文件夹的读取权限。
设置用户"NETWORK SERVICE"具有对文件夹的读取权限. 原帖地址: http://www.cnblogs.com/sjhrun2001/archive/2009/03/ ...
- 【安卓面试题】在一个Activity启动另一个Activity和在Service中启动一个Activity有什么区别
在Activity中可以直接使用Intent启动另一个Activity 显式Intent intent = new Intent(context, activity.class) 隐式 Intent ...
- Android Service 通过 BroadcastReceiver 更新Activity UI
1:MainActivity.java public class MainActivity extends Activity { private TextView tvInfo = null; pri ...
- Android中Service与多个Activity通信
由于项目需要,我们有时候需要在service中处理耗时操作,然后将结果发送给activity以更新状态.通常情况下,我们只需要在一个service与一个activity之间通信,通常这种情况下,我们使 ...
- Android学习笔记_22_服务Service应用之—与Activity进行相互通信的本地服务
一.启动服务的两种方法方法: 第一种: startService()和stopService()启动关闭服务.适用于服务和Activity之间没有调用交互的情况.如果相互之间需要方法调用或者传递参数 ...
- service使用handler与Activity沟通的两种方法
通过之前的学习,我们知道了在主线程中声明一个handler实例并实现了消息的处理方法之后,我可以在子线程中用此实例向主线程发消息,在处理方法中获取消息并更新UI. 那么,如果我们想用handler在s ...
- Android Activity/Service/Broadcaster三大组件之间互相调用
我们研究两个问题,1.Service如何通过Broadcaster更改activity的一个TextView.(研究这个问题,考虑到Service从服务器端获得消息之后,将msg返回给activity ...
- android 中activity调用本地service中的方法。
1.自定义一个接口,暴露服务中的方法 public interface IService { /**服务中对外暴露的方法 */ void methodInService();} 2.自定一 ...
- 通过messenger实现activity与service的相互通信
布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:to ...
随机推荐
- Django的 admin管理工具
admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLE ...
- <<APUE>> 线程的分离状态
在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached).一个可结合的线程能够被其他线程收回其资源和杀死:在被其他线程回收之前,它的存储器资源(如栈)是不释放的.相反, ...
- C# webBrowser 获取元素class属性值
// he 是HtmlElement对象 // GetAttribute("class") 一直取空值 he.GetAttribute("className")
- 杂项:mPaaS
ylbtech-杂项:mPaaS 1. 概述返回顶部 mPaaS 是源于支付宝 App 的移动开发平台,为移动开发.测试.运营及运维提供云到端的一站式解决方案,能有效降低技术门槛.减少研发成本.提升开 ...
- 如果安装提示缺少某vistal c++ 装完仍然报错,可以尝试
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python 从这个网站直接下载需要的包进行安装 来源 https://www.cnblogs.co ...
- js轮播插件
// Tween算法 var Tween = { // t:当前步数 // b:初始位置 // c:总距离 // d:总步数 // Linear:匀速 Linear: function(t,b,c,d ...
- Python 天气预报+微信
""" Description: 需要提供以下三个信息,在申请到的微信企业号当中可以找到 agentid corpid corpsecret Author:Nod Dat ...
- https的加密解密是怎么写的?
原文转载至:http://blog.csdn.net/aqiangsz/article/details/53611665 文章中有些不对的地方,比如用证书对改随机码进行加密,这个是不对,证书本身并没有 ...
- Tornado 框架的使用
Tornado tornado是一个轻量级python的web框架,他是非阻塞式的,而且速度非常快.得利于其 非阻塞的方式和对 epoll 的运用,Tornado 每秒可以处理数以千计的连接,这意味着 ...
- js的数组操作相关(BigTree*)
JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组var arr2 = new Array(20); // ...