Sobes.tech
Junior — Middle

Tətbiqdə tapşırıqları arxa planda yerinə yetirməyin hansı üsulları mövcuddur?

sobes.tech Süni İntellekt

AI-dan cavab

iOS-da fon rejimində vəzifələri yerinə yetirmək üçün bir neçə yanaşma istifadə edilə bilər:

  • Background Tasks (BGTaskScheduler) — sistemin optimal vaxtda yerinə yetirdiyi fon vəzifələrini planlaşdırmaq üçün müasir API.
  • Background Fetch — tətbiqə arxa planda məzmunu mütəmadi olaraq yeniləməyə imkan verir.
  • NSURLSession ilə arxa plan konfiqurasiyası — arxa planda məlumatların yüklənməsi və yüklənməsi üçün.
  • Dispatch Queue (GCD) — asinxron vəzifələri yerinə yetirmək üçün, lakin onlar yalnız tətbiq aktiv olduqda işləyir.
  • OperationQueue — GCD-ə bənzər, lakin daha çevik asılılıqları idarə etmə imkanı ilə.
  • Sükut push bildirişləri — tətbiqi arxa planda vəzifələri yerinə yetirmək üçün oyandırmağa imkan verir.

BGTaskScheduler istifadə nümunəsi:

import BackgroundTasks

func scheduleAppRefresh() {
    let request = BGAppRefreshTaskRequest(identifier: "com.example.apprefresh")
    request.earliestBeginDate = Date(timeIntervalSinceNow: 15 * 60) // 15 dəqiqə sonra
    do {
        try BGTaskScheduler.shared.submit(request)
    } catch {
        print("Vəzifəni planlaşdıra bilmədi: \(error)")
    }
}

BGTaskScheduler.shared.register(forTaskWithIdentifier: "com.example.apprefresh", using: nil) { task in
    // Arxa plan vəzifəsinin yerinə yetirilməsi
    task.setTaskCompleted(success: true)
}