Android平台中是否存在错误? 我一直在尝试覆盖我的SharedPreferences中的Set
prefs = getSharedPreferences("prefs", MODE_PRIVATE);
editor = prefs.edit();
Set<String> set = prefs.getStringSet("set", new HashSet<String>());
set.add("one");
set.add("two");
set.add("three");
editor.putStringSet("set", set);
editor.commit();
showSet(prefs.getStringSet("set", new HashSet<String>()));
这显示正确的字符串:“one”,“two”和“three”。
但后来我要删除“三”。
Set<String> set = prefs.getStringSet("set", new HashSet<String>());
set.remove("three");
editor.putStringSet("set", set);
editor.commit();
showSet(prefs.getStringSet("set", new HashSet<String>()));
这也给了我正确的字符串:“one”和“two”。
但是如果我停止应用程序并重新启动它。我的SharedPreferences仍然会给我“一个”,“两个”和“三个”。
我已经尝试过与布尔和字符串相同,但这似乎工作得很好。 我在my blog here上解释了所有内容。
注意:我已经在onDestroy()中登录了所以当我停止应用程序时,我可以看到onDestroy()被调用,因此生命周期方法已被执行。