我编写了用于在Android中的GoogleMaps中显示多个标记的代码。我的代码如下。
List<Overlay> markersList;
private MyItemizedOverlay funPlaces;
Runnable r = new Runnable() {
public void run() {
if (markersList != null) {
MapController mc = mapView.getController();
mc.setZoom(15);
for (int i=0; i < markersList.size(); i++) {
funPlaces = (MyItemizedOverlay) markersList.get(i);
GeoPoint pt = funPlaces.getCenterPt();
mc.setCenter(pt);
mapView.postInvalidate();
}
}
}
};
Thread t=new Thread(r,"ClassName");
t.start();
当我运行上面的代码时,它有时工作正常,但有时它会给出ConcurrentModificationException。如何解决这个问题?非常感谢任何想法。
答案 0 :(得分:1)
如果您正在收到错误,那么在迭代进行过程中,您几乎肯定会修改ArrayList。我无法从您提供的代码中看出这是由于实际的并发性,还是在迭代期间仅对ArrayList进行了修改,但这就是原因。