Junior — Middle
Чӣ гуна метавон иҷрои вазифаҳоро дар барномаи дар пасзамина дар назар гирифт?
sobes.tech AI
Ҷавоб аз AI
Дар iOS, барои иҷрои вазифаҳо дар режими пасзамана, метавон ба чанд роҳ муроҷиат кард:
- Background Tasks (BGTaskScheduler) — API-и муосир барои нақшакашии вазифаҳои пасзамана, ки системаи онҳоро дар вақти оптималӣ иҷро мекунад.
- Background Fetch — имкон медиҳад, ки барнома дар вақти муайян мундариҷаро дар пасзамана навсозӣ кунад.
- NSURLSession бо конфигуратсияи пасзамана — барои боркунӣ ва боркашонии маълумот дар пасзамана.
- Dispatch Queues (GCD) — барои иҷрои вазифаҳои асинхронӣ, аммо онҳо танҳо вақте кор мекунанд, ки барнома фаъол аст.
- OperationQueue — монанд ба GCD, аммо бо идоракунии бештар дар зависимиятҳо.
- Огоҳии пӯшишии бепул — имкон медиҳад, ки барнома барои иҷрои вазифаҳо дар пасзамана бедор шавад.
Маслиҳат барои истифодаи BGTaskScheduler:
import BackgroundTasks
func scheduleAppRefresh() {
let request = BGAppRefreshTaskRequest(identifier: "com.example.apprefresh")
request.earliestBeginDate = Date(timeIntervalSinceNow: 15 * 60) // дар 15 дақиқа
do {
try BGTaskScheduler.shared.submit(request)
} catch {
print("Намудани нақшаи вазифа: \(error)")
}
}
BGTaskScheduler.shared.register(forTaskWithIdentifier: "com.example.apprefresh", using: nil) { task in
// иҷрои вазифаи пасзамана
task.setTaskCompleted(success: true)
}