アプリケーションで 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 アクティビティ (いくつかの異なるインスタンスを持つ他のコード) にあります。
前もって感謝します。ラケシュ