спасибо за ваши комментарии, я решил свою проблему, вызвав функцию clear () в onResume, проверив, существует ли GoogleMap и, если она не создана, и перейдя в mMap.
@Override
public void onResume() {
clear();
if (listMarkers.size() > 0)
{
setMarker(listMarkers);
}
super.onResume();
}
Функция clear выглядитнапример:
public void clear() {
GoogleMap gm = createMap();
if (gm == null) {
Log.e("clear", "The map is null"); //for testing purposes
return;
} else {
Log.e("clear", "The map already exists"); //for testing purposes
mMap = gm;
mMap.clear();
}
startLocation = null;
endLocation = null;
txtFrom.setText("");
txtTo.setText("");
}
И, наконец, createMap ():
private GoogleMap createMap() {
if (mMap != null) {
Log.e("create", "The map already exists"); // for testing purposes
return mMap;
}
MapFragment fm = (MapFragment)
mainActivity.getFragmentManager().findFragmentById(R.id.map);
try {
fm.getMapAsync(this);
} catch (Exception ex) {
Log.e("Error", ex.getLocalizedMessage());
}
return null;
}
Таким образом, я всегда создаю новый GoogleMap, если он не существует.
Если я делаю что-то не так, не стесняйтесь сказать мне:)