3

我编写了一个地理围栏 iOS 应用程序,它使用 startmonitoringsignificantlocationchanges 来触发需要网络查询的操作。它不能可靠地工作,因为有时网络延迟会导致应用程序终止。我确实意识到文档说,如果我尝试执行需要太长时间的网络查询,iOS 可能会终止应用程序:

“如果您让该服务继续运行并且您的应用程序随后被暂停或终止,则该服务会在新的位置数据到达时自动唤醒您的应用程序。在唤醒时间,您的应用程序将进入后台并给予少量时间处理位置数据。因为您的应用程序在后台,所以它应该做最少的工作并避免任何可能阻止它在分配的时间到期之前返回的任务(例如查询网络)。如果没有,您的应用程序可能会终止。”

当 iOS 由于进入区域而启动我的应用程序时,是否有另一种方法可以在后台启动网络查询?

4

1 回答 1

1

是的,您必须调用 beginBackgroundTaskWithExpirationHandler。看这里:

http://www.mindsizzlers.com/2011/07/ios-background-location/

于 2016-02-18T10:45:25.307 回答