BGAppRefreshTask One-Shot Bug
Spot why this background refresh task only ever runs a single time after launch.
Codeswift
func handleAppRefresh(task: BGAppRefreshTask) {
let operation = RefreshOperation()
task.expirationHandler = {
operation.cancel()
}
operation.completionBlock = {
task.setTaskCompleted(success: !operation.isCancelled)
}
queue.addOperation(operation)
}
func scheduleAppRefresh() {
let request = BGAppRefreshTaskRequest(identifier: "com.app.refresh")
request.earliestBeginDate = Date(timeIntervalSinceNow: 15 * 60)
try? BGTaskScheduler.shared.submit(request)
}
// In didFinishLaunching:
// BGTaskScheduler.shared.register(forTaskWithIdentifier: "com.app.refresh", using: nil) { task in
// handleAppRefresh(task: task as! BGAppRefreshTask)
// }
// scheduleAppRefresh()Why does the background refresh fire only once and never repeat?