当didUpdateToLocation收到消息时,我在后台允许做什么?

时间:2011-01-20 14:12:52

标签: iphone ios ios4

据我了解,我的应用会收到该方法的消息:

- (void) locationManager:(CLLocationManager *)manager
         didUpdateToLocation:(CLLocation *)newLocation 
         fromLocation:(CLLocation *)oldLocation

即使它在后台(如果我设置正确)。

我在这种方法中可以做些什么?我想可以存储coords等,但是我可以发出服务器请求并传递我的坐标吗?

2 个答案:

答案 0 :(得分:0)

您应该能够发送请求(即操作系统不会阻止您),但由于您只有有限的时间,因此无法保证它会遇到 - 特别是如果您还需要来自服务器的响应。< / p>

答案 1 :(得分:0)

您可以使用标准位置服务,这也要求您将应用声明为需要在plist中执行不间断的后台执行。这将允许您的应用程序在后台无限期执行,但需要耗费大量电力资源。您可以进行Web服务调用或提供与用户交互的其他方式。

非导航应用程序的第二种推荐方法是使用重要更改位置服务,该服务仅在用户位置发生重大更改时将应用程序“唤醒”到后台模式。在这种情况下,您将获得有限的时间来完成代码执行,并且不建议进行Web服务调用,因为它们可能无法在有限时间内完成并导致应用程序被操作系统终止。

有关详细信息,请参阅iOS Application Programming Guide 以及Location Awareness Programming Guide