当我执行以下操作时:
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();
答案 0 :(得分:0)
您可以在android source, line 399看到实施。
如我所见,所有更改的密钥都会添加到Map中,因此我可以建议它按字母顺序排列。
此外,onSharedPreferenceChanged
将从地图末尾开始调用(第450行)。
因此,在您的示例中,首先使用(key == "int_1")
和第二(key == "boolean_1")
来调用。
此外,无论您如何进行更改 - 如在第一个或第二个代码中,所有听众都会在致电apply()
后收到通知。