Sobes.tech
Junior — Middle

Descreva um cenário em que a sua aplicação executa tarefas em segundo plano e como isso é implementado.

sobes.tech IA

Resposta da IA

Num aplicativo iOS, pode realizar tarefas em segundo plano, como carregar conteúdo, atualizar dados ou reproduzir áudio, quando o utilizador não está ativo ou o aplicativo está minimizado.

Para implementar tarefas em segundo plano, utilizam-se os seguintes mecanismos:

  • Modos em segundo plano: Ativar os modos apropriados em Capacidades (por exemplo, áudio, geolocalização, VoIP).
  • Recuperação em segundo plano: Permite ao sistema iniciar periodicamente o aplicativo para atualizar o conteúdo.
  • NSURLSession com backgroundConfiguration: Para carregar ou descarregar ficheiros em segundo plano, mesmo que o aplicativo esteja fechado.
  • Tarefas em segundo plano (BGTaskScheduler): Permite planear tarefas que serão executadas pelo sistema no momento oportuno.

Exemplo de uso de NSURLSession para carregamento em segundo plano:

let config = URLSessionConfiguration.background(withIdentifier: "com.example.app.bgSession")
let session = URLSession(configuration: config, delegate: self, delegateQueue: nil)

if let url = URL(string: "https://example.com/file.zip") {
    let task = session.downloadTask(with: url)
    task.resume()
}

Assim, a aplicação pode continuar a descarregar ficheiros, mesmo que o utilizador tenha minimizado a aplicação ou que ela tenha sido descarregada da memória.