对于watchOS 3,苹果建议使用WKRefreshBackgroundTask来更新复杂的内容,而不是使用getNextRequestedUpdateDate。
如何使用新方法确定两个更新之间的时间?
我只会黑我的数据(从一个网址)到getCurrentTimelineEntry,并将更新复杂,但我认为这不是真正的苹果推荐。
一个简短的代码示例将是一个很大的帮助。
发布于 2016-06-22 15:48:20
我大致介绍了这个另一个答案,但我将在这里回答您的具体问题。
您是对的,您不应该破解复杂的控制器来执行任何(异步的)获取。数据源只应负责根据复杂服务器的请求返回手头的现有数据()。这在watchOS 2中是正确的,在watchOS 3中仍然是如此。
对于watchOS 3,每次后台刷新都可以安排下一次刷新。
进程概述:
在特定情况下,您可以等到WKURLSessionRefreshBackgroundTask任务完成其下载。此时,在完成现有的后台任务之前,请安排下一次背景刷新。
在以后的那个时候,您的扩展将再次被唤醒,重新启动整个后台进程,以便:
您甚至可以链接一系列不同的后台子任务,其中每个子任务处理刷新周期的一个单独方面,并负责调度以下子任务。
样本代码:
如果你还没看过,苹果会提供它的WatchBackgroundRefresh示例代码来演示其中的一部分。您可以使用
WKExtension.shared().scheduleBackgroundRefresh(withPreferredDate:userInfo:)在当前任务完成之前安排(初始任务或)未来任务。
尽管他们的示例使用刷新按钮来调度下一次背景刷新,但概念是相同的,无论是用户操作还是后台任务调度下一个请求)。
https://stackoverflow.com/questions/37961942
复制相似问题