0

アプリケーションで 2 つの異なるタブで Google マップの 2 つのインスタンスを使用しています。それぞれのタブのすべてのアクティビティは、TabGroupActivity によって管理されます。

最初のタブにいて、一番上に Map Activity がある場合、asynctask を使用してマーカーを追加できます。

しかし、前のタブのマップ アクティビティが TOP にある他のタブに移動すると問題が発生します。現在のタブのマップ アクティビティは Web サービスを呼び出してマップ データを取得しますが、マーカーを更新できず、他のタブに追加したすべてのマーカーが表示されます。タブのアクティビティ。

誰でもこれを回避する方法を提案できますか? それは大きな助けになるでしょう。

編集:コード

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();

}

................................................................... .......

同じコードが他の Map アクティビティ (いくつかの異なるインスタンスを持つ他のコード) にあります。

前もって感謝します。ラケシュ

4

0 に答える 0