GetMyLocation Google Maps не работает во второй раз заблокировать телефон в android / ionic - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть кратные setInterval (), который работает в фоновом режиме, один из них делает http запросы на мой собственный сервер, все работает хорошо, когда я впервые заблокировал свой телефон, и снова открыл приложение, но во второй раз, когда я заблокировал свой телефон, запрос http перестает работать ...

this.intervalPos = setInterval(() => {
  let location: Location;
  this.map.getMyLocation()
    .then(response => {
      location = {
        lat: response.latLng.lat,
        long: response.latLng.lng,
        timestamp: response.time,
        deporte: this.user.deporte,
        competicion: this.competicion
      }
      console.log("location", location);
      this.api.sendLocation(location).subscribe(response => {
        console.log(response);
      }, error => {
        console.log(error);
      });
    })
    .catch(error => {
      console.log(error);
    });
}, 5000);

Я отключил оптимизацию батареи в моем app.component.ts, когда платформа готова.

if (!cordova.plugins.backgroundMode.isEnabled()) {
    cordova.plugins.backgroundMode.disableBatteryOptimizations();
    cordova.plugins.backgroundMode.setDefaults({ silent: true });
    cordova.plugins.backgroundMode.enable();

    cordova.plugins.backgroundMode.on('activate', function () {
      cordova.plugins.backgroundMode.disableWebViewOptimizations();
    });
  }

Все работает нормально в первый раз, но во второй раз некоторые из моих setIntervals перестают работать должным образом.

Метод getMyLocation не выполняется во второй раз.

...