Background Modes & Tasks
Declare the right background modes and schedule work with BGTaskScheduler for refresh or processing tasks.
Enable Background Modes
In Signing & Capabilities, add Background Modes.
Check the modes you need (e.g., Background fetch, Background processing, Location updates, Audio, VOIP).
Background Tasks (BGTaskScheduler)
Use BGAppRefreshTask or BGProcessingTask to schedule work when your app is not active.
Example
BackgroundTasks.swift
App.swift
import BackgroundTasks
let refreshTaskID = "com.example.myapp.refresh"
func scheduleRefresh() {
let request = BGAppRefreshTaskRequest(identifier: refreshTaskID)
request.earliestBeginDate = Date(timeIntervalSinceNow: 15 * 60)
try? BGTaskScheduler.shared.submit(request)
}
func handleRefresh(task: BGAppRefreshTask) {
scheduleRefresh() // reschedule
task.expirationHandler = { /* cancel work */ }
// Do lightweight refresh work here
task.setTaskCompleted(success: true)
}
This example schedules a BGAppRefreshTask, registers a handler at app start, and marks the task completed after lightweight work.
Leave a Reply