0

我在我的应用程序中的 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();

}

..................................................... …………

其他地图活动中存在相同的代码 - 在具有一些不同实例的其他代码中。

提前致谢。拉克什

4

0 回答 0