【发布时间】:2013-06-29 06:16:48
【问题描述】:
我在 google maps API V2 android 中显示多个标记。在我的代码下面,progressdialog 挂起,listmodelUserTrackings 有 448 个数据显示在地图上。请帮我解决这个问题。提前谢谢
int i=0;
public void showMarker() {
showProgressDialog();
final Handler mHandler = new Handler();
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
if (i < listmodelUserTrackings.size()) {
int pos = i;
Log.v("log_tag", "thread sleep");
final double lat = Double
.parseDouble(listmodelUserTrackings.get(pos)
.getLAT());
final double lng = Double
.parseDouble(listmodelUserTrackings.get(pos)
.getLONG());
Bundle bundle = new Bundle();
bundle.putDouble("lat", lat);
bundle.putDouble("longi", lng);
mHandler.post(new Runnable() {
@Override
public void run() {
String city = null;
try {
city = getAddress(lat,lng).get(0).getAddressLine(1);
} catch (NullPointerException e) {
}
if (city != null) {
CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(
lat,lng));
mMap.addMarker(new MarkerOptions().position(
new LatLng(lat,lng)).title(
city));
mMap.moveCamera(center);
}
}
});
i++;
} else {
mHandler.post(new Runnable() {
@Override
public void run() {
dismissProgressDialog();
}
});
break;
}
}
}
}).start();
}
【问题讨论】:
-
为什么不使用 asynctask istead?
-
你得到地图上的所有标记了吗?进度对话框会消失吗?
-
是的,我已经在地图中获得了所有标记,然后进度对话框关闭,但进度对话框挂起
-
使用 asyncTask 代替处理程序并关闭 onPostExecute 中的对话框 ...这可能有效..
标签: android progressdialog google-maps-android-api-2