代码之家  ›  专栏  ›  技术社区  ›  Farrukh Javeid

多个长期运行的后台任务

  •  0
  • Farrukh Javeid  · 技术社区  · 9 年前

    我正在开发一个应用程序,在该应用程序中,我必须执行至少两个后台任务。场景变成这样,我有一个web服务,它告诉我何时为用户启动位置更新。所以,我需要定期调用该服务,以检查是否该开始和/或停止用户的位置跟踪。 所以有两个后台任务,提取和位置跟踪。Fetch应该定期运行,这违反了苹果的程序,即它将监控你的应用程序的使用情况,并自行决定何时更新内容。这已经成为我的第一个问题,我有什么办法可以避免这个问题吗?第二个问题是多个任务,我如何在它们之间切换? 这里的最佳实践是什么?该做什么和不该做什么?

    1 回复  |  直到 9 年前
        1
  •  0
  •   Fred Faust    9 年前

    你应该通过苹果的推送服务器使用推送通知,或者你可以找到类似Parse的服务。com更易于使用。您可以使用推送通知在应用程序代理中触发或创建任何内容(在那里您可以处理接收推送通知)。正如@Paulw11的评论所言,您甚至可以将有效负载(数据)附加到推送通知并处理它。因此,第一部分是向用户的设备发出通知,通知他们何时应该开始跟踪和结束跟踪。

    大多数使用CLLocationManager实例的位置跟踪工作都可以通过其委托方法完成。但是,如果您希望在NSOperation的子类中使用它,并在NSOperationQueue中管理它,请参阅此处获取教程:

    http://www.raywenderlich.com/76341/use-nsoperation-nsoperationqueue-swift

    我建议研究一下课程文档。