Junior — Middle
Uygulamalarda arka plan görev yürütme modunu uygulama veya üzerinde çalışma deneyiminiz var mı?
sobes.tech yapay zeka
AI'dan gelen yanıt
iOS'ta arka planda görevleri yerine getirmek için sıkça Background Tasks API'si (örneğin, BGTaskScheduler) kullanılır; bu, sistemin en uygun gördüğü zamanlarda görevlerin planlanmasına olanak tanır. Ayrıca, proje ayarlarında arka plan modları (Background Modes) kullanılabilir; örneğin, içerik güncelleme, ses çalma, konum alma gibi.
Arka planda veri güncellemek için BGAppRefreshTask kullanım örneği:
import BackgroundTasks
func scheduleAppRefresh() {
let request = BGAppRefreshTaskRequest(identifier: "com.example.app.refresh")
request.earliestBeginDate = Date(timeIntervalSinceNow: 15 * 60) // en az 15 dakika
do {
try BGTaskScheduler.shared.submit(request)
} catch {
print("Görev planlanamadı: \(error)")
}
}
func handleAppRefresh(task: BGAppRefreshTask) {
scheduleAppRefresh() // bir sonraki görevi planla
let queue = OperationQueue()
queue.maxConcurrentOperationCount = 1
let operation = DataFetchOperation() // veri yükleme işleminiz
task.expirationHandler = {
queue.cancelAllOperations()
}
operation.completionBlock = {
task.setTaskCompleted(success: !operation.isCancelled)
}
queue.addOperation(operation)
}
Ayrıca, URLSession ile arka plan konfigürasyonları kullanılarak veri yükleme yapılabilir. Sistem kısıtlamalarına dikkat etmek önemlidir, böylece kaynaklar aşırı kullanılmaz.