android – java.util.ConcurrentModificationException和SharedPreference

前端之家收集整理的这篇文章主要介绍了android – java.util.ConcurrentModificationException和SharedPreference前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在崩溃日志中发现了这个崩溃.我不知道它什么时候发生.有人能给我建议是什么原因吗?也许有人有同样的崩溃.
java.util.ConcurrentModificationException
       at java.util.HashMap$HashIterator.nextEntry(HashMap.java:787)
       at java.util.HashMap$KeyIterator.next(HashMap.java:814)
       at com.android.internal.util.XmlUtils.writeSetXml(XmlUtils.java:350)
       at com.android.internal.util.XmlUtils.writeValueXml(XmlUtils.java:688)
       at com.android.internal.util.XmlUtils.writeMapXml(XmlUtils.java:295)
       at com.android.internal.util.XmlUtils.writeMapXml(XmlUtils.java:264)
       at com.android.internal.util.XmlUtils.writeMapXml(XmlUtils.java:230)
       at com.android.internal.util.XmlUtils.writeMapXml(XmlUtils.java:187)
       at android.app.SharedPreferencesImpl.writeToFile(SharedPreferencesImpl.java:597)
       at android.app.SharedPreferencesImpl.access$800(SharedPreferencesImpl.java:51)
       at android.app.SharedPreferencesImpl$2.run(SharedPreferencesImpl.java:512)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
       at java.lang.Thread.run(Thread.java:818)

解决方法

我们在使用SharedPreferences getStringSet方法时看到了这个异常.此方法返回不应修改的集合.在将SharedPreferences对象序列化为flash时修改此集将产生ConcurrentModificationException.

如果您使用getAll并修改返回的地图,也会发生这种情况.

documentation

猜你在找的Android相关文章