我正在开发一个位置跟踪应用程序,该应用程序在后台使用标准位置服务和重大更改位置服务(我的应用程序在iOS 4+中注册了后台位置更新)。由于有了这个问题,我对如何从后台状态返回更改并从终止状态重新启动有了很好的理解。但是,我仍然不清楚标准位置服务在这些实例中的行为。有人能分解在后台运行的标准位置服务的确切行为吗?
具体地说:
locationManager:didUpdateToLocation:fromLocation:上的回调(我让它发送一个套接字,我可以在网络上看到它)。此回调是否有处理时间或内存限制?application:didFinishLaunchingWithOptions:和UIApplicationLaunchOptionsLocationKey重新启动呢?我假设在这种情况下还需要重新启动CLLocationManager,就像重大更改服务所做的那样。谢谢。
发布于 2011-08-02 07:52:18
请同时回答1和2,如果您已经将应用程序注册为使用后台位置,则您的应用程序不会终止,并继续在后台运行,直到您完成以下操作:
[locationManager stopUpdatingLocation];因此,没有时间或内存限制,但有电池限制。如果你的电池不足,所有使用gps的应用程序都将关闭。由于您的应用程序在正常情况下没有终止,所以它不是必需的,就是不重新启动(因为电池终止后)使用UIApplicationLaunchOptionsLocationKey。
标准服务和重要服务的不同之处在于,当出现位置更新时,重要的服务会唤醒应用程序,但标准服务会使应用程序持续运行,从而耗尽电池。
在选择要使用的服务之前,请考虑读取位置-意识规划指南。
https://stackoverflow.com/questions/6284504
复制相似问题