Я написал расширение Watchkit (WatchOS 5.1.1), в котором я пытаюсь получать данные каждые 30 минут или около того.
До сих пор я читал, что планирование фоновых задач не пунктуально с минуту, но довольно надежно в использовании пару раз в час.
Я планирую задачу, используя
WKExtension.shared().scheduleBackgroundRefresh(withPreferredDate: Date(timeIntervalSinceNow: interval * 60 ), userInfo: ["time": Logger.getDateString()] as NSDictionary ) { (error: Error?) in
if let error = error {
print("Error occured while scheduling background refresh: \(error.localizedDescription)")
}
}
Это работает, однако, независимо от того, какой интервал я выбрал, задание выполняется только через 60 минут. Я написал себе журнал, где я могу видеть, когда
func handle(_ backgroundTasks: Set<WKRefreshBackgroundTask>)
вызывается в ExtensionDelegate, и я могу подтвердить, что дескриптор вызывается не достаточно часто.
Мои часы включены> на 80%, так что, похоже, проблема не в этом.
Цените любой вклад в это!