标准位置服务在后台运行的iOS 4应用程序生命周期行为

我正在开发一个位置跟踪应用程序,该应用程序在后台同时使用标准位置服务和重要更改位置服务(我的应用程序已注册iOS 4或更高版本中的后台位置更新)。 感谢这个问题,我对于从后台状态返回的重大变化以及从终止状态重新启动有了很好的理解。 但是,我仍然不清楚标准位置服务在这些情况下的行为。 任何人都可以打破在后台运行的标准位置服务的确切行为?
特别:

  1. 标准位置服务在离开运行时应如何运行,应用程序是否挂起到后台? 从我自己的testing中,我已经看到,它将继续醒来接收locationManager:didUpdateToLocation:fromLocation:callbacklocationManager:didUpdateToLocation:fromLocation:我有它发送一个套接字的位置,我可以看到它在networking上)。 这个callback是否有时间限制或内存限制?
  2. 即使我的应用程序终止,标准位置服务是否继续运行? 也就是说,它会重新启动与application:didFinishLaunchingWithOptions:UIApplicationLaunchOptionsLocationKey重要更改服务的方式? 我认为在这种情况下, CLLocationManager也需要重新启动,就像重要更改服务一样。

谢谢。

同时回答1和2,如果你已经注册你的应用程序作为使用背景位置,那么你的应用程序不会被终止,并继续在后台运行,直到你这样做:

 [locationManager stopUpdatingLocation]; 

所以,没有时间或内存的限制,但是有一个电池的限制。 如果电池电量不足,所有使用gps的应用程序将被closures。 由于您的应用程序在正常情况下没有终止,无论是不是要求或不重新启动(在电池被终止后)与UIApplicationLaunchOptionsLocationKey

标准和重要的服务在这种方式是不同的,当有位置更新,但标准使应用程序连续运行,从而耗尽电池,显着唤醒应用程序。

在select要使用的服务之前,请考虑阅读位置感知编程指南。