SharedPreferences 与私有文件
Posted
技术标签:
【中文标题】SharedPreferences 与私有文件【英文标题】:SharedPreferences vs. Private File 【发布时间】:2012-03-22 02:13:48 【问题描述】:在我的应用程序中,我使用PreferenceActivity
框架来存储持久数据。我的意图是创建多个保存文件,Preference
s 可以访问所有这些文件,但一次只能访问一个。
什么时候使用Context.openFileOutput()
生成的私有文件比较好,什么时候使用SharedPreferences
比较好?
编辑 我的数据仅存在于原语中。
【问题讨论】:
【参考方案1】:通常,开发人员使用getDefaultSharedPreferences
使用整个应用程序通用的首选项文件。
不过,android 在Context 中有一个getSharedPreferences(String name, int mode)
方法。您可以使用它来拥有多个首选项文件,在您的情况下 - 通过使用传递给 name
参数的唯一名称来保存文件。
关于波动性,您可以通过edit()
获取Editor
然后调用commit()
来强制保存偏好。
请务必注意,SharedPreferences 确实将基于name
共享:
检索并保存首选项文件“name”的内容,返回一个 SharedPreferences,您可以通过它检索和修改其值。仅将 SharedPreferences 对象的一个实例返回给任何同名调用者,这意味着他们将在进行编辑后立即看到彼此的编辑。
【讨论】:
那么如果我使用SharedPreferences
,数据的安全性不会有问题?
您在寻找什么样的安全措施?您没有在问题中提及安全性。
我会检查您可以在其中打开 SharedPreferences
的模式。请参阅此处:developer.android.com/reference/android/content/…
@Benoir 我认为这回答了我正在寻找的东西。我正在寻找的“安全性”是其他应用程序和系统必须访问的权限。 SharedPreferences
应该完成我的任务。谢谢。
@louielouie :用户可以修改共享首选项文件的内容(并将一些其他数据输入其中 - 不是以编程方式)。是存储在sd卡里吗?以上是关于SharedPreferences 与私有文件的主要内容,如果未能解决你的问题,请参考以下文章