我在google maps API V2 android中显示多个标记。在我的代码中,progressdialog挂起,listmodelUserTrackings有448个数据显示在map.please帮助我解决这个问题。感谢前进
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();
}
答案 0 :(得分:1)
您的代码最大的问题是您在主线程上进行网络操作。
移动此代码:
String city = null;
try {
city = getAddress(lat,lng).get(0).getAddressLine(1);
} catch (NullPointerException e) {
}
进入后台线程。