Android 即使使用了synchronized关键字,也要使用ConcurrentModificationException

Android 即使使用了synchronized关键字,也要使用ConcurrentModificationException,android,list,exception,object,concurrency,Android,List,Exception,Object,Concurrency,我有一个从网络服务返回的定义对象列表(网络svc将更新此列表)。 在某个特定的时间点,我想在我的listview上呈现我已经拥有的东西。 我有以下代码: List<MyObject> myObjects = MyService.getInstance().getListOfMyObject() 我不知道怎么了?我并没有调用任何函数来修改对象,我只是“克隆”了它,据我所知,这不会改变对象中的任何一位。 非常感谢您的任何想法。根据我找到的一些线索,我喜欢和 如果您正在迭代列表,同时其他

我有一个从网络服务返回的定义对象列表(网络svc将更新此列表)。 在某个特定的时间点,我想在我的listview上呈现我已经拥有的东西。 我有以下代码:

List<MyObject> myObjects = MyService.getInstance().getListOfMyObject()
我不知道怎么了?我并没有调用任何函数来修改对象,我只是“克隆”了它,据我所知,这不会改变对象中的任何一位。
非常感谢您的任何想法。

根据我找到的一些线索,我喜欢和

如果您正在迭代列表,同时其他线程也在修改它。。这也会导致
ConcurrentModificationException
。。因此,您可以尝试对列表的传递对象使用
同步化
克隆列表
方法

synchronized(source)
{
    // make a copy
}

我希望你已经在修改数据的线程中这样做了…

根据我找到的一些类似和

如果您正在迭代列表,同时其他线程也在修改它。。这也会导致
ConcurrentModificationException
。。因此,您可以尝试对列表的传递对象使用
同步化
克隆列表
方法

synchronized(source)
{
    // make a copy
}

我希望你已经在修改数据的线程中这样做了…

是的,我这样做了(正如你在我编辑的帖子中看到的),我已经将我的源代码放在了一个同步块中。但它仍然抛出异常。您是否也可以发布修改数据的代码。。。您是否也在同步该部分…MyService.getInstance().updateListOfMyObject()-->此函数用于修改数据(从网络连接更新新数据)。我有一个对象列表来缓存我的对象,用于更新新对象和检索。您可以发布
updateListOfMyObject()
方法中的相关代码吗?我只是从网络连接读取数据,然后重建到对象中,然后将这些新对象更新到MyService中缓存的列表中。是的,我这样做了(正如您在我编辑的帖子中所看到的),我已经将我的源代码放入了一个同步块中。但它仍然引发异常。您是否也可以发布修改数据的代码…您是否也在同步该部分…MyService.getInstance().updateListOfMyObject()-->此函数用于修改数据(我从网络连接更新新数据)。我有一个对象列表,用于缓存我的对象,用于更新新对象和检索。您可以发布
updateListOfMyObject()
方法中的相关代码吗?我只是从网络连接读取数据,然后重建到对象中,然后将这些新对象更新到MyService中缓存的列表中。
03-11 16:07:11.370: E/AndroidRuntime(8076): FATAL EXCEPTION: main
03-11 16:07:11.370: E/AndroidRuntime(8076): java.util.ConcurrentModificationException
03-11 16:07:11.370: E/AndroidRuntime(8076):  at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:569)
03-11 16:07:11.370: E/AndroidRuntime(8076):  at xxx.utilities.MyListUtils.cloneList(CollectionUtils.java:120)
synchronized(source)
{
    // make a copy
}