PreferenceManager.setDefaultValues readAgain参数和新首选项

Gia*_*nzi 8 android default-value android-preferences sharedpreferences

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

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

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

Nir*_*jan 6

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

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

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