4

我发现某些值Set在重新启动应用程序后已存储丢失。为什么?这是一个 Android API 错误吗?有人建议将字符串存储在数据库中。我还没有测试过,但我认为这个建议是解决问题的方法。getStringSet和怎么样putStringSet

4

3 回答 3

6

据我了解,这是一个错误。问题是当您尝试存储一个集合时,Android 会将您尝试保存的修改集合与存储在 SharedPreferences 中的当前集合进行比较。当它们是同一个对象(具有相同的引用)时,新的将被忽略。

一种解决方法是在存储之前创建集合的新副本。

是详细信息,问题在https://code.google.com/p/android/issues/detail?id=27801提交。

于 2013-03-28T15:11:23.700 回答
4

SharedPreferences.Editor 编辑器 = preferences.edit();
editor.remove(key);
editor.commit();
editor.putStringSet(key, value);
editor.commit();

于 2013-10-16T02:06:31.263 回答
0

我在使用 SharedPreferences 时遇到了同样的问题。Android API 中似乎存在错误。我在这里发了一个小帖子

对我来说最简单的方法是删除它,提交它,然后放入它并再次提交

于 2013-08-25T16:22:58.357 回答