PreferenceManager.setDefaultValues readAgain参数和新首选项

时间:2012-05-14 06:40:51

标签: android sharedpreferences default-value android-preferences

我正在使用PreferenceManager.setDefaultValues(context,R.xml.preferences,false)在我的应用程序中设置首选项的默认值,我注意到如果我添加新的首选项,那么我的PreferenceFragment不会显示默认值,即使它是在 preferences.xml ..

中设置的

这是因为我将 readAgain 指定为false吗?

我知道我可以简单地试一试,但我只是想确保 readAgain 就是为了这个目的,即重新读取默认值而不是重新设置用户设置,但设置新属性的默认值。如果这正是 readAgain 标志的目的,那么你可以给我一个不总是将 readAgain 设置为true的理由,因为它不会重置用户首选项吗? / p>

1 个答案:

答案 0 :(得分:6)

readagain标志设置为true将确保再次设置所有未设置的默认值。这是摘要。

设置readagain会产生额外的开销,因为基本上它意味着,代码将再次通过整个SharedPreference来检查它们。如果readAgain为false,则只需检查是否存在用作设置默认值的标记的文件( has_set_default_values.xml )。

在任何情况下,它都不会设置任何已设置的值。