我无法弄清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,以异步方式更新叠加层。

10-05 21:20