startmonitoringsignificantlocation改变和查询网络

时间:2013-11-10 22:47:19

标签: ios networking background

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

  

“如果您保持此服务正在运行并且您的应用程序随后被暂停或终止,则当新的位置数据到达时,该服务会自动唤醒您的应用程序。在唤醒时,您的应用程序将被置于后台并获得少量处理位置数据的时间。因为你的应用程序在后台,它应该做最少的工作,并避免任何可能阻止它在分配的时间到期之前返回的任务(例如查询网络)如果没有,您的申请可能会被终止。“

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

1 个答案:

答案 0 :(得分:1)

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

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