這是我的第一個問題,所以如果有什麼不對,請告訴。MapActivity中的ConcurrentModificationException
現在,我有一個public class MainMap extends MapActivity
它使用MyLocationListener
爲用戶的位置和HelloItemizedOverlay。 我從一個XML文件中獲取某些POI,我想添加標記(漂亮的基本Overlays)。
用戶按下一個按鈕,啓動的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
。
我已經通過這個網站搜索,閱讀類似的線程(例如this one),但我不能真正找到我做錯了什麼。
瞭解自己,這可能是明顯的。
由於提前,
iarwain