Sobes.tech
Junior — Middle

Quais são as formas de implementar a execução de tarefas em segundo plano na aplicação?

sobes.tech IA

Resposta da IA

No iOS, para realizar tarefas em segundo plano, podem ser utilizados vários métodos:

  • Tarefas em segundo plano (BGTaskScheduler) — API moderna para agendar tarefas em segundo plano que o sistema executa no momento mais oportuno.
  • Recuperação em segundo plano — permite à aplicação atualizar periodicamente o conteúdo em segundo plano.
  • NSURLSession com configuração em segundo plano — para carregar e descarregar dados em segundo plano.
  • Filas de despacho (GCD) — para executar tarefas assíncronas, mas só funcionam enquanto a aplicação estiver ativa.
  • OperationQueue — semelhante ao GCD, mas com uma gestão mais flexível de dependências.
  • Notificações push silenciosas — permitem despertar a aplicação para realizar tarefas em segundo plano.

Exemplo de uso do BGTaskScheduler:

import BackgroundTasks

func scheduleAppRefresh() {
    let request = BGAppRefreshTaskRequest(identifier: "com.example.apprefresh")
    request.earliestBeginDate = Date(timeIntervalSinceNow: 15 * 60) // em 15 minutos
    do {
        try BGTaskScheduler.shared.submit(request)
    } catch {
        print("Não foi possível agendar a tarefa: \(error)")
    }
}

BGTaskScheduler.shared.register(forTaskWithIdentifier: "com.example.apprefresh", using: nil) { task in
    // Execução da tarefa em segundo plano
    task.setTaskCompleted(success: true)
}