Locationservice-Indikator bleibt "an"

8

Ich habe eine kleine App erstellt, die Ortungsdienste auf dem iPhone verwendet. Alles funktioniert gut, abgesehen davon, dass manchmal der kleine Pfeil in der Info-Leiste aktiv bleibt, auch wenn ich die App explizit abtöte. Ich benutze den Hintergrundmodus für locationservices, daher sind die appDelegate-Methoden applicationWillResignActive , applicationDidEnterBackground , applicationWillEnterForeground und applicationDidBecomeActive implementiert, aber nicht die Ortungsdienste (naja, ich brauche sie im Hintergrundmodus).

In dieser Konfiguration wird applicationWillTerminate niemals aufgerufen. Ich habe die Aufräumarbeiten als stopUpdatingLocation in dealloc implementiert, da ich keinen anderen geeigneten Ort gefunden habe. Aber immer noch - der Indikator bleibt an.

Irgendwelche Ideen?

    
Axel 02.02.2011, 08:06
quelle

4 Antworten

0

Ok, Problem gelöst. Die Anzeige bleibt eingeschaltet, bis ein neuer Standort gefunden wird. Wenn alles andere korrekt ist, wird die Anzeige ausgeschaltet.

    
Axel 19.03.2011, 17:48
quelle
13

Ich hatte das gleiche Problem - App ließ die Standortanzeige in der Statusleiste an.

Mein Problem stellte sich heraus, dass ich ursprünglich die Methode 'startMonitoringSignificantLocationChanges' von CCLocationManager gewählt hatte, die grobe Standortinformationen lieferte, mit denen ich die Auflösung verbessern konnte, als ich sie wirklich brauchte.

Leider, sobald eine App diese Methode einmal aufgerufen hat, auch wenn Sie die App dann löschen und erneut installieren, wird das Symbol in der Statusleiste immer wieder angezeigt, bis die App 'stopMonitoringSignificantLocationChanges' in CCLocationManager aufruft, um sich selbst abzumelden Das System - völliger Schmerz, da ich diesen Code so lange einbehalten muss, bis er sich bei den Leuten, die meine App für mich getestet haben, aussortiert hat.

Wenn Sie also sicherstellen, dass dieses Symbol in Ihrer App aktiviert ist, stellen Sie sicher, dass Sie alle Aufrufe von "startMonitoringSignificantLocationChanges" mit einem Stoppanruf abgeglichen haben.

    
Richard Groves 11.05.2011 10:22
quelle
3

Wenn Sie Ihren Standortmanager-Job mit

gestartet haben %Vor%

dann müssen Sie es mit stoppen:

%Vor%

Wenn Sie die Beendigung der Anwendung erzwingen, wird applicationWillTerminate nicht aufgerufen, da sie aus Sicht des Betriebssystems als SIGKILL angezeigt wird.

    
Lorenzo Bevilacqua 02.02.2011 17:51
quelle
1

Ich habe ein ähnliches Problem gefunden. Das Problem tritt nur auf dem iPhone4 auf, funktioniert aber perfekt auf meinem 3GS. Nachdem ich meinen Code angeschaut habe, habe ich festgestellt, dass ich in meiner startUpdatingLocation-Methode die Dienste startUpdatingLocation und startMonitoringForRegion verwendet habe, aber in meiner Methode stopUpdatingLocation höre ich einfach auf, denLocation-Dienst zu aktualisieren. Ich habe dieses Problem behoben, indem ich MonitoringForRegion ebenfalls deaktiviert habe.

%Vor%     
Tong 08.06.2011 09:55
quelle