我的mapview存在问题 - 我用AsyncTask填充它,但是在完成之后点数不会显示,直到屏幕被点击(在第一次触摸后所有点都显示正确)。
OnCreate中:
dialog = ProgressDialog.show(MyMap.this,“Populating Map”, “请等一下......”,真的);
new AddOverlays()。execute();
我的AsyncTask:
class AddOverlays extends AsyncTask <Void, Void, String>{
@Override
protected String doInBackground(Void... unsued) {
//do my looping work to add items to map
mapOverlays.add(itemizedOverlay);
String nothing = "";
return nothing;
}
@Override
protected void onProgressUpdate(Void... unsued) {
}
@Override
protected void onPostExecute(String sResponse) {
if (dialog.isShowing())
dialog.dismiss();
}
}
答案 0 :(得分:2)
尝试致电:
来自UI线程的invalidate()
要么
来自另一个帖子的postInvalidate()
以使地图视图重新绘制。
您应该在mapOverlays.add(itemizedOverlay);
中致电onPostExecute(String sResponse)
,因为添加新的叠加层并不是一项昂贵的操作。
我想你会在doInBackground(Void... unused)
中做一些昂贵的操作,因为到目前为止你并不需要整个AddOverlays任务。