会不会是安卓平台有bug?我一直在尝试覆盖我的 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>()));
这显示了正确的字符串:“一”、“二”和“三”。
但后来我想删除“三”。
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>()));
这也给了我正确的字符串:“一”和“二”。
但如果我停止应用程序并重新启动它。我的 SharedPreferences 仍会返回“一”、“二”和“三”。
我已经对布尔值和字符串进行了同样的尝试,但这似乎工作得很好。我已经在我的博客上解释了一切。
注意:我已经登录了 onDestroy(),所以当我停止应用程序时,我可以看到 onDestroy() 被调用,因此生命周期方法已被执行。