• 关于使用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里面直接去读取数据库中的值。

  • 相关阅读:
    学习ReentrantLock
    新博客地址:WWW.BG7YWL.COM
    LimeSDR 无线信号重放攻击和逆向分析
    LimeSDR 上手指南
    GSM:嗅探语音流量
    制作一个老旧C118的GSM便携式测试设备
    SMS PDU编码数据串格式分析
    闪付卡(QuickPass)隐私泄露原理
    低成本制作基于OpenWRT的渗透工具
    Inside a low budget consumer hardware espionage implant
  • 原文地址:https://www.cnblogs.com/liyanli-mu640065/p/7641206.html
Copyright © 2020-2023  润新知