private void Uninitialize(Android.Gms.Maps.GoogleMap nativeMap, Map map) { try { if (nativeMap == null) { System.Diagnostics.Debug.WriteLine($"Uninitialize failed - {nameof(nativeMap)} is null"); return; } if (map == null) { System.Diagnostics.Debug.WriteLine($"Uninitialize failed - {nameof(map)} is null"); return; } _uiSettingsLogic.Unregister(); map.OnSnapshot -= OnSnapshot; _cameraLogic.Unregister(); foreach (var logic in _logics) { logic.Unregister(nativeMap, map); } if (Map.IsUseCluster) { _clusterLogic.Unregister(nativeMap, map); } nativeMap.SetOnMapClickListener(null); nativeMap.SetOnMapLongClickListener(null); nativeMap.SetOnMyLocationButtonClickListener(null); nativeMap.MyLocationEnabled = false; nativeMap.Dispose(); } catch (System.Exception ex) { var message = ex.Message; System.Diagnostics.Debug.WriteLine($"Uninitialize failed. - {message}"); } }