使用getStringSet和putStringSet丢失一些值

Mak*_*iev 4 android sharedpreferences

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

pt2*_*121 6

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

解决方法是在存储之前创建该集的新副本.

以下是详细信息,问题发布在https://code.google.com/p/android/issues/detail?id=27801.