我无法弄清ConcurrentModificationException
的来源。在我的activity
中,我打电话 updateMapOverlay()
。我还在另一个定期调用的线程(updateMapOverlay()
)中调用TimerTask
。从两个线程调用updateMapOverlay()
时,我正在使用适当的锁。是由于我从非UI线程(即updateMapOverlay
)内部调用TimerTask
引起的问题吗?还有其他人遇到过类似的问题吗? private void updateMapOverlay() {
ojit_pre
谢谢。
例外:
this.itemizedOverlay.refreshItems(createOverlayItemsList());
List<Overlay> overlays = mapView.getOverlays();
overlays.clear();
overlays.add(cotItemizedOverlay);
this.mapview.invalidate();
}
最佳答案
造成此问题的原因是
我从调用updateMapOverlay
在非UI线程内
是。
我也叫updateMapOverlay()
在另一个线程中(TimerTask)
定期调用。
为什么要不断删除和添加覆盖图?只需更新叠加层并使其无效即可。请参见here for an example,以异步方式更新叠加层。