我正在尝试使用以下行安排后台任务:

WKExtension.shared().scheduleBackgroundRefresh(withPreferredDate: Date(timeIntervalSinceNow: TimeInterval(5) * 60), userInfo: nil, scheduledCompletion: self.scheduledCompletion)

哪里
func scheduledCompletion(error: Error?) {
        if error == nil { print("successfully scheduled application background refresh") }
        else { print("error scheduling background refresh, error: \(error)") }
}

根据documentation:

scheduledCompletion一个由系统调用的块
后台应用刷新任务已完成。

但是由于未知原因,在计划后台刷新任务之后立即调用它。在正确的时间调用了后台刷新任务,并且在此之后没有调用scheduledCompletion

那是文档错误,WatchKit错误还是我做错了吗?

最佳答案

尽管有文档的描述,但scheduledCompletion将是计划任务的时间。在WWDC16 Keeping Your Watch App Up to Date会话中11:23提到了它:

swift3 - WKExtension.scheduleBackgroundRefresh应该何时调用ScheduledCompletion处理程序?-LMLPHP

09-25 17:18