Геолокатор (13.0.2) используется для получения обновлений местоположения на iOS. Фоновый режим также используется для получения потока координат, даже когда приложение находится в фоновом режиме. Замечено, что когда приложение переходит в фоновый режим и снова возвращается в режим переднего плана, даже после отмены потока данных о местоположении приложение все еще получает доступ к GPS. И это подтверждается значком местоположения, отображаемым в строке состояния iPhone. Однако после отмены трансляции приложение не получает координаты местоположения, а это сильно разряжает батарею.
Код: Выделить всё
StreamSubscription? _locationStream;
void startLocationStream() {
_locationStream = Geolocator.getPositionStream(
locationSettings: AppleSettings(
accuracy: LocationAccuracy.best,
allowBackgroundLocationUpdates: true,
),
).listen(coordinateLogic);
}
void stopLocationStream() {
_locationStream?.cancel().then((_) {
_locationStream = null;
});
}
Подробнее здесь:
https://stackoverflow.com/questions/793 ... -cancelled