我在我的应用程序中的 2 个不同选项卡中使用了 2 个 Google Map 实例。各个选项卡中的所有活动都由 TabGroupActivity 管理。
当我在第一个选项卡中并且顶部是我的 Map Activity 时,我可以使用 asynctask 添加标记。
但是,当我使用 TOP 上的前一个选项卡的 Map Activity 转到其他选项卡时,就会出现问题,当前选项卡的 Map 活动调用 webservices 以获取地图数据但无法更新标记,并且我看到了我在另一个选项卡上添加的所有标记选项卡的活动。
任何人都可以为此建议一些解决方法吗?这将是一个很大的帮助。
编辑:代码
onCreate(){
if (status == ConnectionResult.SUCCESS) {
if (mMapCard == null) {
// Try to obtain the map from the SupportMapFragment.
// mMap = ((MapFragment) getFragmentManager().findFragmentById(
// R.id.mapFragement)).getMap();
mapFragement = ((MapFragment) getFragmentManager()
.findFragmentById(R.id.mapFragement));
System.out.println("mMapCard object" + mapFragement.getId());
mMapCard = mapFragement.getMap();
// mMapCard = ((SupportMapFragment)
// getSupportFragmentManager().findFragmentById(R.id.mapFragement)).getMap();
}
} else {
int requestCode = 10;
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status, this,
requestCode);
dialog.show();
}
} setUpMapForCurrentLocation(); fetchCardMapItems(); // 这个方法添加 Card. 在这里,我将标记添加到地图并将所有标记对象存储在列表中,以便在暂停时删除标记
@Override protected void onPause() { super.onPause();
if (MarkerListHashMap != null && MarkerListHashMap.size() > 0) {
Toast.makeText(CardMapActivity.this, MarkerListHashMap.size() + "",
Toast.LENGTH_LONG).show();
for (int i = 0; i < MarkerListHashMap.size(); i++) {
MarkerListHashMap.get(i).remove();
}
}
mMapCard.clear();
System.gc();
}
..................................................... …………
其他地图活动中存在相同的代码 - 在具有一些不同实例的其他代码中。
提前致谢。拉克什