#flutter #dart #geolocation #location
#flutter #dart #геолокация #Расположение
Вопрос:
Я хочу обновлять местоположение пользователя каждые 10 минут. onLocationChanged
Работает нормально, даже когда приложение работает в фоновом режиме. Тем не менее, он продолжает выбрасывать данные о местоположении при изменении местоположения. Я хочу, чтобы он запустил метод _getCurrentLocationtoServer()
через 10 минут.
location.onLocationChanged.listen((LocationData cLoc) {
currentLocation = cLoc;
_getCurrentLocationtoServer();
});
void _getCurrentLocationtoServer() async{
//code to send to server
}
Я использую https://pub.dev/packages/location посылка.
Ответ №1:
Не вызывайте _getCurrentLocationtoServer() внутри onLocationChanged . Просто назначьте значение currentLocation . Теперь создайте новый
Timer.periodic(Duration(minutes: 10), () => _getCurrentLocationtoServer());
Это выполняется периодически и отправляет значение currentLocation на сервер каждые 10 минут. Убедитесь, что значение currentLocation не равно null, прежде чем отправлять его на сервер.
Ответ №2:
Вы можете изменить интервал location
вызова by changeSettings
и установить правильный интервал:
interval установит желаемый интервал для активных обновлений местоположения в миллисекундах (влияет только на Android).
location.changeSettings(interval: 1000 * 60 * 10); // 10 mins