J'écris une application qui utilise l'emplacement pour deux raisons:geofences de mise à jour avec une faible précision en arrière-plan, la position de mise à jour sur la carte à haute précision, ne fonctionne pas comme prévu
1) Il montre l'emplacement de l'utilisateur 2) En arrière-plan, même lorsqu'il est fermé, il obtient les 20 points d'intérêt les plus proches (liste stockée dans userdefaults) et une carte (avec une précision de navigation) dans une instance de gestionnaire d'emplacement. active un geofence pour ceux-ci, de sorte que l'utilisateur est remarqué en arrivant à proximité. Ceci est fait par la plus basse précision possible (3km) pour économiser de l'énergie, et mise en place dans une autre instance de gestionnaire de localisation, initiée lors de la première ouverture de l'application. Le problème est que l'objet CLLocationmanager semble être statique, donc quand je l'appelle de deux endroits différents, c'est la même instance qui est retournée, et la précision, les intervalles, etc, semblent être les mêmes, puisque les deux délégués sont appelé simultanément tout le temps. Par conséquent, la méthode d'installation geofences est appelée tout le temps, lorsque l'utilisateur vient de bouger un peu, ce que je veux que la carte reflète.
Vous devez modifier les paramètres d'une instance unique de CLLocationManager, ou mieux encore, utiliser le mode de changement d'emplacement significatif en arrière-plan. Et vérifiez si vous êtes actuellement au premier plan ou à l'arrière-plan lors de la mise à jour des geofences, ou vérifiez le delta Ove avant de mettre à jour les geofences – Paulw11