iOS如何在一天中的特定时间使用后台刷新?

问题描述 投票:0回答:2

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

是否有可能在早上刷新1小时范围内的数据?即使应用程序不会每天打开一次。

我可以在刷新方法完成时更新后台刷新时间间隔吗?

ios swift background refresh background-task
2个回答
0
投票

iOS 13 中提供的 BackgroundTasks API 可以创建 BGTaskRequest 对象(BGAppRefreshTaskRequest 或 BGProcessingTaskRequest),用于通过 BGTaskScheduler 调度后台任务。

BGTaskRequest 具有最早开始日期属性,用于在所需时间安排任务。 但这只是暗示。 IOS此时并不能100%保证它调度任务。


0
投票

不要在刷新任务完成后安排下一个任务,而是在任务启动之前安排它。在 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()
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.