当 WKExtension.scheduleBackgroundRefresh 应该调用 scheduleCompletion 处理程序时?

abj*_*ato 2 swift3 watchos-3 wkrefreshbackgroundtask

我正在尝试使用这样的行安排后台任务:

WKExtension.shared().scheduleBackgroundRefresh(withPreferredDate: Date(timeIntervalSinceNow: TimeInterval(5) * 60), userInfo: nil, scheduledCompletion: self.scheduledCompletion)
Run Code Online (Sandbox Code Playgroud)

在哪里

func scheduledCompletion(error: Error?) {
        if error == nil { print("successfully scheduled application background refresh") }
        else { print("error scheduling background refresh, error: \(error)") }
}
Run Code Online (Sandbox Code Playgroud)

根据文档

scheduledCompletion 在后台应用程序刷新任务完成后由系统调用的块。

但是由于未知原因,它在调度后台刷新任务后被直接调用。后台刷新任务在正确的时间scheduledCompletion被调用,之后不会被调用。

那么它是文档中的错误,WatchKit 中的错误还是我做错了什么?

abj*_*ato 6

尽管有文档的描述,scheduledCompletion但将是计划任务的时间。在 11:23 的WWDC16保持您的手表应用程序更新会议期间提到了这一点:

在此处输入图片说明