У меня есть кратные 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 не выполняется во второй раз.