概述
如何让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
本文介绍了在Android开发中,由于SharedPreferences在多进程中存在不一致性问题,推荐使用ContentProvider等跨进程数据管理方法。同时,推荐了一个第三方库DPreference,该库提供了一种多进程安全可靠共享数据的方式,并且保持与SharedPreferences相同的API。
1万+

被折叠的 条评论
为什么被折叠?



