如何在iOS中使用一天中特定时间的背景刷新



我知道如何使用后台刷新和方法在一段时间后获取数据。

有没有可能让我在早上的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()
}
}

最新更新