我正在开发一个应用程序,我必须至少执行两个后台任务。场景变得像这样,我有一个Web服务,告诉我何时开始为用户更新位置。因此,我需要定期调用此服务来检查是否有时间启动和/或停止用户的位置跟踪。 因此,有两个后台任务,即提取和位置跟踪。 Fetch应该定期运行,这违反了Apple的程序,它将监控您的应用程序的使用情况并决定它何时更新内容。这已成为我的第一个问题,有什么方法可以避免这种情况吗?第二个问题是多个任务,我如何在它们之间切换? 这里的最佳做法是什么? Dos and Don&#t; ts?
答案 0 :(得分:0)
您应该通过Apple的推送服务器使用推送通知,否则您可能会发现像Parse.com这样的服务更容易使用。您可以使用推送通知在应用程序委托中触发或创建任何内容(处理接收推送通知的位置)。正如@ Paulw11的评论所述,您甚至可以将有效负载(数据)附加到推送通知并处理它。因此,第一部分是在用户应开始跟踪和结束跟踪时向用户的设备发出通知。
使用CLLocationManager实例的大多数位置跟踪内容都可以通过它的委托方法完成。但是,如果您希望在NSOperation的子类中使用它并在NSOperationQueue中管理它,请参阅此处获取教程:
http://www.raywenderlich.com/76341/use-nsoperation-nsoperationqueue-swift
我建议研究课程文档。