android - SharedPreferences - 修改多个值 - 值更改的顺序

时间:2014-05-04 20:55:18

标签: android sharedpreferences

当我执行以下操作时:

SharedPreferences.Editor edit = getSharedPreferences(context,
                                     Context.MODE_PRIVATE).edit();
edit.putBoolean("boolean_1", true).putInt("int_1", 1);
edit.apply();

onSharedPreferencesChanged(String key, SharedPreferences sharedPreferences)调用的顺序是什么?首先是(key == "boolean_1"),然后是(key == "int_1");或者是周围的其他方式?或者它既不是那些场景,而是另一种类型的排序,可能是键的alpha / num排序,还是类型+ alpha?

此外,以下代码与上述代码完全相同吗?

SharedPreferences.Editor edit = getSharedPreferences(context,
                                     Context.MODE_PRIVATE).edit();
edit.putBoolean("boolean_1", true)
edit.putInt("int_1", 1);
edit.apply();

1 个答案:

答案 0 :(得分:0)

您可以在android source, line 399看到实施。

如我所见,所有更改的密钥都会添加到Map中,因此我可以建议它按字母顺序排列。

此外,onSharedPreferenceChanged将从地图末尾开始调用(第450行)。 因此,在您的示例中,首先使用(key == "int_1")和第二(key == "boolean_1")来调用。

此外,无论您如何进行更改 - 如在第一个或第二个代码中,所有听众都会在致电apply()后收到通知。