我知道如何使用后台刷新和方法在一段时间后获取数据。
有没有可能让我在早上的1小时内刷新数据?即使应用程序不会每天打开一次。
我可以在刷新方法完成时更新后台刷新时间间隔吗?
iOS 13中提供的BackgroundTasks API可以创建BGTaskRequest对象(BGAppRefreshTaskRequest或BGProcessingTaskRequest(,用于通过BGTaskScheduler调度后台任务。
BGTaskRequest在所需时间具有计划任务的earliestBeginDate属性。但这只是一个暗示。IOS并不能100%保证在这个时候安排任务。
与其将下一个任务安排在刷新任务完成之后,不如将其安排在任务开始之前。在SwiftUI:中
.backgroundTask(.appRefresh(task1)) {
await scheduleTask1() // schedule the next task (or the same task again) right here, before your task runs
if await fetchTodaysForecast() {
await notifyTodaysForecast()
}
}