2016-03-28 4 views
1

Ich habe eine App, die überprüft, ob der Benutzer einen der Filialen meines Kunden nähert und wenn er dies tut, sendet ihm die App eine Benachrichtigung, er ist in der Nähe eines Geschäftes.Signifikante Standortänderungen Überwachung stoppt im Hintergrund

Natürlich verwende ich Geofencing (locationManager: didEnterRegion) und ich habe mehr als 20 Geschäfte so auf locationManager: didUpdateLocations Ich sortiere die 20 nächstgelegenen Geschäfte zum Benutzer.

ich die Konfiguration meines CLLocationManager auf diese Weise auf dem AppDelegate und dann meine ViewControllerlocationManager Eigentum an dem Objekt einstellen (weil ich die gleiche locationManager auf dem AppDelegate auch verwenden möchten:

-(void)configureLocationManager 
{ 
    //Initializing "locationManager"'s(CLLocationManager) 
    self.locationManager=[[CLLocationManager alloc] init]; 
    //Setting "locationManager"'s(CLLocationManager)'s delegate to "monitorLocationVC"(monitorLocationViewController) 
    self.locationManager.delegate=self.monitorLocationVC; 
    //Setting "locationManager"'s(CLLocationManager)'s distance filter to 10 
    self.locationManager.distanceFilter=10; 
    //Setting "locationManager"'s(CLLocationManager)'s activityType to navigation 
    self.locationManager.activityType=CLActivityTypeAutomotiveNavigation; 
    //setting "locationManager"'s(CLLocationManager) desiredAccuracy to "best" 
    self.locationManager.desiredAccuracy=kCLLocationAccuracyBest; 
    //Setting "locationManager"'s(CLLocationManager)'s pausesLocationUpdatesAutomatically to NO 
    self.locationManager.pausesLocationUpdatesAutomatically=NO; 
    //If OS version is 9 or above - setting "allowsBackgroundLocationUpdates" to YES 
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9) { 
     self.locationManager.allowsBackgroundLocationUpdates = YES; 
    } 
} 

Bis jetzt ist alles funktionierte gut, aber jetzt sehe ich, dass die App begann nicht für Geschäfte im Hintergrund nach ein paar Minuten zu informieren, es läuft (benachrichtigt etwa 15 Minuten und dann plötzlich stoppt) das Startbildschirm (nur ein normaler Start) die App stürzt ab, könnte es das Problem sein?

Vielen Dank!

+0

Überprüfung dieses https://github.com/voyage11/Location – kb920

+0

@ kb920 Die App funktionierte perfekt, bis Jetzt, damit der Code korrekt ist, suche ich nur nach dem Fehler, der dazu führt, dass die App keine wichtigen Standortänderungen mehr überwacht. –

+0

Was ist das Absturzprotokoll? – kb920

Antwort

0

Überprüfung dieser Dokumentation und fügen Hintergrund Fetch-Modus: documentation apple

und fügen Sie diesen Code:

if ([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) 
{ 
    [self.locationManager requestAlwaysAuthorization]; 
} 
if ([self.locationManager respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) { 
    [self.locationManager setAllowsBackgroundLocationUpdates:YES]; 
} 
Verwandte Themen