多进程中的SharedPreferences

概述

如何让SharedPreferences支持多进程共享数据,我们可以在获取SharedPreferences对象的时候传入MODE_MULTI_PROCESS这个模式

 SharedPreferences preferences = getSharedPreferences("default",MODE_MULTI_PROCESS);

但是这种做法是不推荐的,已经过时了,我们去看看源码的解释

   * @deprecated MODE_MULTI_PROCESS does not work reliably in
     * some versions of Android, and furthermore does not provide any
     * mechanism for reconciling concurrent modifications across
     * processes.  Applications should not attempt to use it.  Instead,
     * they should use an explicit cross-process data management
     * approach such as {@link android.content.ContentProvider ContentProvider}.
     */
    @Deprecated
    public static final int MODE_MULTI_PROCESS = 0x0004;

大概的意思就是说在某些Android的版本中,SharedPreferences是不可靠的,而且会有修改不一致的问题,应用程序不应该尝试去使用它,应该使用其他进程间通讯的方法,例如ContentProvider。

实现

先介绍一个第三方库,地址如下:
DozenWang/DPreference
特点:
1.多进程安全可靠共享数据
2.和SharedPreferences 同样的API
3.兼容老的app版本,不需要升级,只是在原来SharedPreferences的基础上包装了ContentProvider

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值