使用SharedPreferences保存数据数据取出延迟或丢失的问题
来源:互联网 发布:零起点学算法 编辑:程序博客网 时间:2024/05/21 11:26
SharedPreferences更改数据后多处读取,数据丢失或延时的问题的原因和解决办法
先说一下遇到这个问题的场景,由于我的项目中使用了SharePreference保存一个状态,然后通过获取这个状态来控制后面的逻辑,也就是这个状态是要频繁的去获取的,那势必对这个状态的更改后再重新获取的灵敏度依赖是很高的.然后就出现了这样一个问题,在主进程的某个文件中更改了这个状态后,主进程中可以很实时的获取到(这个我是调试了很久才发现的,因为我有多个地方获取了这个状态,并且他们还是分布在不同的进程中),而其他非主进程的地方获取不到,而且只要程序不杀掉重新启动,那么它获取的就一直是上一次保存的状态.然后我就去找SharePreference的资料去查,找了很久终于找到一个和我遇到的这个问题很相似的解释,所以这里记录下来,以便后续复习,也方便还有遇到这个问题的人能更快速的解决问题.
这个问题主要是创建SharedPreferences文件时设置的MODE类型导致的,我平时代码中创建的SharedPreferences文件的类型都是MODE_PRIVATE也就是0,也没有很详细的了解getSharedPreferences(name, mode)这个方法后面的mode的作用,那下面我就根据我查询的资料来说一下getSharedPreferences(name, mode)的mode的种类以及使用场景
MODE_PRIVATE:代表私有访问模式,在Android 2.3及以前这个访问模式是可以跨进程的,之后的版本这个模式就只能访问同一进程下的数据.
MODE_MULTI_PROCESS:在Android 2.3及以前,这个标志位都是默认开启的,允许多个进程访问同一个SharedPrecferences对象。而以后的Android版本,必须通过明确的将MODE_MULTI_PROCESS这个值传递给mode参数,才能开启多进程访问。
MODE_WORLD_READABLE: 表示当前文件可以被其他应用读取
MODE_WORLD_WRITEABLE: 表示当前文件可以被其他应用写入
MODE_APPEND: 追加方式存储
所以我的代码里里在getSharePreference这个方法里的模式设置为MODE_MULTI_PROCESS就解决了问题.
阅读全文
0 0
- 使用SharedPreferences保存数据数据取出延迟或丢失的问题
- android中使用SharedPreferences保存数据丢失的问题
- SharedPreferences 存储集合数据丢失的问题
- 使用SharedPreferences保存数据
- 使用SharedPreferences保存复杂类型的数据
- 使用SharedPreferences来保存数据
- 使用SharedPreferences对象保存数据
- SharedPreferences保存少量的数据
- devexpress的GridControl控件保存数据时数据丢失问题
- 使用SharedPreferences保存对象(图片)类型的数据
- 在Android中使用SharedPreferences保存简单的数据
- Android 在本地使用SharedPreferences,保存大量的数据
- Android使用SharedPreferences保存数据实例
- Android --使用SharedPreferences保存和获取数据
- fragment中使用sharedPreferences保存数据。
- android 使用SharedPreferences保存list数据
- Android开发---使用SharedPreferences保存数据
- 使用SharedPreferences保存和读取数据
- 树莓派之I2C编程
- 使用原生js动态生成Select,根据前面的Select的option生成二级Select
- Tomcat 结构图级比喻
- Android Studio报错Error Running app: cannot debug application
- Vue cli+mui 区域滚动
- 使用SharedPreferences保存数据数据取出延迟或丢失的问题
- Quoted-printable和Base64 编码
- 北京2017 SyScan360国际前瞻信息安全会议即将启程!
- 解决Java下载文件,文件名包含中文在IE浏览器乱码问题
- oracle数据库SQL查询语句练习二
- struts2 json格式返回数据
- 注解
- kafka学习二:在linux环境下kafka搭建环境(单机版)
- 浅析统计学、数据挖掘、机器学习和AI的区别和关系