首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Swift 3和后台任务的复杂性更新

Swift 3和后台任务的复杂性更新
EN

Stack Overflow用户
提问于 2016-06-22 07:59:31
回答 1查看 4.1K关注 0票数 9

对于watchOS 3,苹果建议使用WKRefreshBackgroundTask来更新复杂的内容,而不是使用getNextRequestedUpdateDate

如何使用新方法确定两个更新之间的时间?

我只会黑我的数据(从一个网址)到getCurrentTimelineEntry,并将更新复杂,但我认为这不是真正的苹果推荐。

一个简短的代码示例将是一个很大的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-22 15:48:20

我大致介绍了这个另一个答案,但我将在这里回答您的具体问题。

您是对的,您不应该破解复杂的控制器来执行任何(异步的)获取。数据源只应负责根据复杂服务器的请求返回手头的现有数据()。这在watchOS 2中是正确的,在watchOS 3中仍然是如此。

对于watchOS 3,每次后台刷新都可以安排下一次刷新。

进程概述:

在特定情况下,您可以等到WKURLSessionRefreshBackgroundTask任务完成其下载。此时,在完成现有的后台任务之前,请安排下一次背景刷新。

在以后的那个时候,您的扩展将再次被唤醒,重新启动整个后台进程,以便:

  • 从web服务请求新数据
  • 处理回复并更新数据存储
  • 告诉复杂情况,更新自己(这将使用手头的新数据)。
  • 更新码头快照
  • 计划即将到来的后台刷新任务
  • 将当前任务标记为已完成。

您甚至可以链接一系列不同的后台子任务,其中每个子任务处理刷新周期的一个单独方面,并负责调度以下子任务。

样本代码:

如果你还没看过,苹果会提供它的WatchBackgroundRefresh示例代码来演示其中的一部分。您可以使用

代码语言:javascript
运行
复制
WKExtension.shared().scheduleBackgroundRefresh(withPreferredDate:userInfo:)

在当前任务完成之前安排(初始任务或)未来任务。

尽管他们的示例使用刷新按钮来调度下一次背景刷新,但概念是相同的,无论是用户操作还是后台任务调度下一个请求)。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37961942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档