多进程中的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

    原文作者:lxn_李小牛
    原文地址: https://blog.csdn.net/Small_Lee/article/details/51474406
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞