4-实现了安排任务的方法。
func scheduleAppRefresh() {
let request = BGAppRefreshTaskRequest(identifier: "IDENTIFIER")
// handle refresh based on the time added to now
request.earliestBeginDate = Date(timeIntervalSinceNow: 5 * 60)
do {
try BGTaskScheduler.shared.submit(request)
} catch {
print("Could not schedule app refresh: \(error)")
}
}
5-另一种处理任务的方法(并安排新任务)。
func handleAppRefresh(task: BGProcessingTask) {
scheduleAppRefresh()
task.expirationHandler = {
//DO Something after task expired
}
// do updates here
}
我也一直在努力解决这个问题。并且根据文档并观看了一些Apple视频,这似乎是完全期望的。我希望当苹果建议您使用BGBACKGROWN用于现场活动时,这将是一种更倾向的体验。我想这不是🤷u200d♂️
https://developer.apple.com/news/?id =qpqf1gru
我如何在不使用Apple Push Notification Service(APN)的情况下更新现场活动? 您的应用程序可以使用现有的背景运行时功能(例如位置服务)来提供您所看到的实时活动更新。您还可以使用BGProcessingTask和背景推送,以提供较少频繁的现场活动更新。
保留系统不会立即处理这些背景任务。
播放实时活动的实时数据
Apple为
他们想尽可能保留电池。这意味着您有处理时间 App是前景
后台后30秒 - 假设您使用beginBackgroundTask
未来的innknown背景时间 - 假设您已经使用了
。它的时机取决于:BGProcessingTask
设备被插入
设备闲置或使用另一个应用程序
优先应用行为用法
即使您有时间在后台这样做,您的过程也可以在任何时间点停止!