public void Start()
{
_isPaused = false;
if (_isStarted)
{
return;
}
if (_locationManager.IsProviderEnabled(LocationManager.NetworkProvider))
_locationManager.RequestLocationUpdates(LocationManager.NetworkProvider, 1000, 0, this);
if (_locationManager.IsProviderEnabled(LocationManager.GpsProvider))
_locationManager.RequestLocationUpdates(LocationManager.GpsProvider, 1000, 0, this);
_isStarted = true;
var lastPositionNetwork = _locationManager.GetLastKnownLocation(LocationManager.NetworkProvider);
var lastPositionGps = _locationManager.GetLastKnownLocation(LocationManager.GpsProvider);
var lastPosition = LatestPosition(lastPositionNetwork, lastPositionGps);
if (lastPosition != null)
{
OnLocationChanged(lastPosition);
}
}