2012-04-08 18 views
2

Ich habe eine Anwendung, die auf Hintergrund ausgeführt wird, da es Location Update benötigt. jedoch, da ich keine Batterie verbrauchen möchte. Ich möchte sicherstellen, dass alle View-Controller entladen ist, wenn die App im Hintergrund läuft.Wie erzwinge ViewController zum Entladen?

Antwort

3

Das Erzwingen, dass der View Controller entladen wird, spart keine Akkulaufzeit. Es ist am besten, wenn das Betriebssystem sich darum kümmert, dass die App bei Bedarf nicht mehr benötigt wird. Wenn Sie den Hintergrundmodus verwenden, der Ihre Anwendung benachrichtigt, wenn der Benutzer einen erheblichen Betrag zurückgelegt hat, müssen Sie sich noch weniger Gedanken darüber machen, da Ihre App nicht im Hintergrund ausgeführt wird, sondern nur die Möglichkeit bietet, auf Standortänderungen zu reagieren. Wenn Sie den Hintergrundmodus mit konstantem Standort (für GPS-Apps usw.) verwenden, ist dies ein kleines Problem.

+0

Dank Paul ... Ich benutze konstante Standortaktualisierung, weil ich es brauche. – user836026

2

Sie müssen die View-Controller nicht entladen, aber Sie müssen Standortaktualisierungen deaktivieren. Wenn Sie Standortaktualisierungen in AppDelegate beginnen, setzen in etwa so:

- (void)applicationWillResignActive:(UIApplication *)application 
{ 
    [myLocationManager stopUpdatingLocation]; 
} 

können Sie dies auch in der viewWillDisappear: Methode, wenn Sie Ihren Standort-Manager an einem anderen Ort als dem App Delegierter gestartet wird.

Verwandte Themen