0

会不会是安卓平台有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() 被调用,因此生命周期方法已被执行。

4

0 回答 0