【问题标题】:SharedPreferences vs. Private FileSharedPreferences 与私有文件
【发布时间】:2012-03-22 02:13:48
【问题描述】:

在我的应用程序中,我使用PreferenceActivity 框架来存储持久数据。我的意图是创建多个保存文件,Preferences 可以访问所有这些文件,但一次只能访问一个。

什么时候使用Context.openFileOutput()生成的私有文件比较好,什么时候使用SharedPreferences比较好?

编辑
我的数据仅存在于原语中。

【问题讨论】:

    标签: android sharedpreferences save


    【解决方案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卡里吗?
    猜你喜欢
    • 2016-04-13
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-30
    • 2011-08-22
    相关资源
    最近更新 更多