2010-10-13 7 views
1

J'ai utilisé la méthode startMonitoringSignificantLocationChanges pour localiser l'emplacement actuel. Cela fonctionne bien si l'appareil est stationnaire, mais il ne répond pas en voyageant et les tours de téléphonie cellulaire ont changé.La méthode startMonitoringSignificantLocationChanges ne répond pas

Il reçoit un rappel initial. J'utilise cette méthode

-(void)UpdateOwnLocation{ 

[locationManager stopMonitoringSignificantLocationChanges]; 
[locationManager startMonitoringSignificantLocationChanges]; 

} 

Il est appelé après tous les intervalles réguliers, mais pas la mise à jour l'emplacement lors d'un voyage. I essayé de remplacer la méthode sous-

-(void)UpdateOwnLocation{ 

//[locationManager stopMonitoringSignificantLocationChanges]; 
//[locationManager startMonitoringSignificantLocationChanges]; 

    [locationManager stopUpdatingLocation]; 
[locationManager startUpdatingLocation];   
      
} 

et le processus est exécuté en arrière-plan.

Répondre

0

Fonctionne si l'appareil est à l'arrêt? Voulez-vous dire que vous obtenez le rappel initial, mais pas de rappels ultérieurs?

Quelque chose que vous devriez être au courant:

Il y a un bug in CoreLocation in 4.1. Fondamentalement, si votre application est en arrière-plan, il se bloque lorsque l'emplacement de base essaie de vous réveiller. Apparemment, il est corrigé en 4.2.