2016-04-27 12 views
-2

Ich habe eine App mit aktiviertem Hintergrundspeicherort und Abrufmodi. Er ruft den Benutzerstandort ab, sendet ihn an den Server, liest die Ergebnisse (JSON) und löst eine lokale Benachrichtigung aus. Dieser Prozess wurde alle 15, 60 und 180 Sekunden auf einem iPhone 4S getestet.iOS App friert während der Ausführung des Hintergrunds ein

Hier kommt das Problem.

Wenn die App im Hintergrund läuft, nach ca. 3 Minuten, friert sie ein und stoppt die Kommunikation mit dem Server. Ich kann das von Xcode im Debug-Navigator sehen: Speicher ist zugewiesen, aber CPU- und Energieauswirkung sind Null. Dieses Problem kann repliziert werden, eine schwere App wie Youtube zu öffnen: In diesem Fall friert die App nach wenigen Sekunden ein. Am wahrscheinlichsten friert iOS selbst die App ein. Meine Frage ist: Gibt es eine Möglichkeit, dieses Einfrieren zu verhindern oder die App aufzutauen, ohne es wieder aufzunehmen?

+0

Sie haben schon für Standortaktualisierung Hintergrundmodus entschieden haben, Ihre App wird "unfreeze" und sobald der Benutzer seinen Standort ändert :) Location Delegates wird jedes Mal aufgerufen, wenn der Benutzer seinen Standort basierend auf der Entfernung f ändert ilter, das Sie angegeben haben :) Im Standortaktualisierungsdelegaten können Sie NSURLSession und den Sitzungsmanager verwenden, um mit Ihrem Server zu kommunizieren. Wenn Sie Ihre App häufig aufrufen müssen, legen Sie den Abstand zum genauesten Filter fest. Die Verwendung des Standorts ist immer ein Kompromiss. Denken Sie daran, dass Ihre App den Akku des Benutzers auslaufen lässt. Verwenden Sie ihn nur gemäß Ihren Anforderungen –

Antwort

0

plz verwenden diesen Code

Satz setAllowsBackgroundLocationUpdates Eigentum Ihrer Lage Krippe

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

Sie können auch Hintergrund überprüfen Remming Zeit

NSLog(@"%f",[UIApplication sharedApplication].backgroundTimeRemaining); 
Verwandte Themen