这是我在这里的第一个问题,所以如果有什么问题,请告诉我。
现在,我有一个public class MainMap extends MapActivity
用于MyLocationListener
用户位置的 a 和一个HelloItemizedOverlay。我从要添加标记的 XML 文件中获取某些 POI(非常基本的覆盖)。
用户按下按钮,AsyncTask 启动:
private class GetPOITask extends AsyncTask<String, Void, Void> {
protected Void doInBackground(String... params) {
clearMapOverlay();
if(!isBusyAddingOverlays)
{
connect(params[0]);
}
return null;
}
protected void onPreExecute() {
clearMapOverlay();
}
}
清除 MapOverlay(this.mv 是 MapView):
public void clearMapOverlay()
{
this.mv.getOverlays().remove(placesItemizedOverlay);
this.mv.postInvalidate();
this.mv.getOverlays().add(myLoc);
}
当我有足够的信息来添加标记时,这是我的连接方法调用的方法:
private void addOverlayToList(int id, GeoPoint point, String title, String description)
{
//Log.e("Debug", "Adding overlay");
placesItemizedOverlay.addOverlay(new POIOverlay(id, point, title, description));
this.mv.getOverlays().add(placesItemizedOverlay);
}
这应该是所有相关的代码。
问题是当我添加 POI并缩放地图(或移动它)时,我得到一个ConcurrentModificationException
.
我已经搜索了这个站点,阅读了类似的线程(例如这个),但我真的找不到我做错了什么。
了解我自己,这可能是显而易见的。
提前致谢,
艾尔万