使用SharedPreferences实现Activity和Service之间数据同步问题

本文介绍了在Android项目中,使用Service进行后台定时请求数据时遇到的SharedPreferences数据同步问题。当UserId变化时,Service无法实时获取更新的数据。通过排查,发现Context.MODE_PRIVATE不支持Activity和Service之间的数据同步,改用Context.MODE_MULTI_PROCESS后成功解决了此问题,避免了类似错误的发生。
摘要由CSDN通过智能技术生成

最近项目有使用service定时请求后台获取数据的需求。

所以就写了service,由于访问后台需要用到参数UserId(动态获取),所以使用了SharedPreferences来完成数据存储和获取。

在Activity中有关SharedPreferences的代码如下:

<span style="font-family:Arial;font-size:18px;">SharedPreferences  settings= getApplicationContext().getSharedPreferences("useriD", Context.MODE_PRIVATE);
SharedPreferences.Editor  editor = settings.edit();
editor.putString("useriD", userID);//这里的userId是动态获取的。
editor.commit();</span>

在service中SharedPreferences的代码是这样的:

<span style="font-family:Arial;font-size:18px;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值