以下是exception的代码::
if (getZoomLevel() != last_zoom)
{
// if computeScroll called before timer counts down we should drop it and start it over again
zoom_event_delay_timer.cancel();
zoom_event_delay_timer = new Timer();
Log.v("last_zoom","last_zoom");
zoom_event_delay_timer.schedule(new TimerTask()
{
@Override
public void run()
{
zoom_change_listener.onZoomChange(_this, getZoomLevel(), last_zoom);
Log.v("last_zoom","last_zoom"+last_zoom);
last_zoom = getZoomLevel();
Log.v("last_zoom","last_zoom");
}
}, events_timeout);
}以及错误:
01-05 12:24:50.791: ERROR/AndroidRuntime(11132): FATAL EXCEPTION: Timer-11
01-05 12:24:50.791: ERROR/AndroidRuntime(11132): java.util.ConcurrentModificationException
01-05 12:24:50.791: ERROR/AndroidRuntime(11132): at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)
01-05 12:24:50.791: ERROR/AndroidRuntime(11132): at com.bluepal.android.parkable.Prakablescreen.onRegionChange(Prakablescreen.java:1028)
01-05 12:24:50.791: ERROR/AndroidRuntime(11132): at com.bluepal.android.parkable.Prakablescreen$14.onPanChange(Prakablescreen.java:467)
01-05 12:24:50.791: ERROR/AndroidRuntime(11132): at com.bluepal.android.parkable.EnhancedMapView$2.run(EnhancedMapView.java:126)
01-05 12:24:50.791: ERROR/AndroidRuntime(11132): at java.util.Timer$TimerImpl.run(Timer.java:289)发布于 2011-04-11 19:11:26
这里的问题似乎是您正在从另一个线程(在本例中是计时器)调用UI线程。我找到了these sites来解释和解决这个问题(我使用了一个处理程序)。
发布于 2011-01-05 15:22:57
请提供一些源代码。
从错误中可以看出,在迭代it.If时,您似乎正在尝试修改数组列表。在所有修改之后,将此临时数组列表存储到您的数组列表中。
发布于 2011-01-05 16:40:45
从错误中可以看出,您在迭代数组列表时似乎正在尝试修改它
如果100rabh是正确的,并且你没有通过迭代器修改你的列表,也许你可以使用ThreadSafe这个CopyOnWriteArrayList。
https://stackoverflow.com/questions/4601605
复制相似问题