正如我在 getSharedPreferences(String, int) 的 API 描述中检查的那样,第二个属性定义了可访问性模式,并且可以采用 0 或 MODE_PRIVATE 作为默认操作,MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE 来控制权限。
但是在API描述中有这么一条小提示:
Note: currently this class (android.content.SharedPreferences) does not support use across multiple processes. This will be added later.
此外,在 Mark L. Murphy 的书“beginning Android 2”中,他提到:
(Eventually, preferences might be shareable across applications, but that is not supported as of the time of this writing)
我很困惑!这是否意味着 getSharedPrefrences 的 MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE 存在但在最新的 API 级别中尚未得到支持???
谢谢! 米根
最佳答案
我的引用书目就是基于该评论。
此外,使任何文件MODE_WORLD_READABLE
或(更糟)MODE_WORLD_WRITEABLE
不是一个好主意。你失去了任何安全的希望。
如果您希望在两个应用程序之间共享数据,有无数种解决方案,例如:
- 使用 AIDL 公开的 API 服务
- 通过
startService()
发送的命令和通过Messenger
或createPendingResult()
发送的响应公开 API 的服务PendingIntent
什么的 - 内容提供者
- 广播
Intent
所有这些都允许您定义集成权限并让您控制访问的粒度。
关于android - SharedPreferences 是否可以在不同的 Android 应用程序之间共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4787785/