SharedPreferences可以在不同的Android应用程序之间共享吗?

时间:2011-01-24 22:08:57

标签: android preferences

当我在API描述中检查getSharedPreferences(String,int)时,Second属性定义了可访问性模式,默认操作可以采用0或MODE_PRIVATE,MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE可以控制权限。

但是在API描述中有这个小注释:

  

注意:目前这个班级   (android.content.SharedPreferences)   不支持跨多个使用   流程。这将在稍后添加。

此外,在Mark L. Murphy的书“开始Android 2”中他提到:

  

(最终,偏好可能是   可以跨应用程序共享,但是   从那时起就不支持了   这篇文章)

我很困惑!这是否意味着getSharedPrefrences的MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE存在,但在最新的API级别中没有支持YET ???

谢谢! 米泔

1 个答案:

答案 0 :(得分:7)

我的书籍参考是基于该评论。

此外,制作任何文件MODE_WORLD_READABLE或(更糟)MODE_WORLD_WRITEABLE都是个坏主意。你失去了安全的希望。

如果您希望在两个应用程序之间共享数据,则有无数的解决方案,例如:

  • 使用AIDL公开的API提供服务
  • 使用通过startService()发送的命令公开API的服务以及通过MessengercreatePendingResult() PendingIntent
  • 发送的回复
  • 内容提供商
  • 广播Intents

所有这些都允许您定义集成权限,并允许您控制访问的粒度。