View in English

  • Apple Developer
    • Get Started

    Explore Get Started

    • Overview
    • Learn
    • Apple Developer Program

    Stay Updated

    • Latest News
    • Hello Developer
    • Platforms

    Explore Platforms

    • Apple Platforms
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store

    Featured

    • Design
    • Distribution
    • Games
    • Accessories
    • Web
    • Home
    • CarPlay
    • Technologies

    Explore Technologies

    • Overview
    • Xcode
    • Swift
    • SwiftUI

    Featured

    • Accessibility
    • App Intents
    • Apple Intelligence
    • Games
    • Machine Learning & AI
    • Security
    • Xcode Cloud
    • Community

    Explore Community

    • Overview
    • Meet with Apple events
    • Community-driven events
    • Developer Forums
    • Open Source

    Featured

    • WWDC
    • Swift Student Challenge
    • Developer Stories
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Centers
    • Documentation

    Explore Documentation

    • Documentation Library
    • Technology Overviews
    • Sample Code
    • Human Interface Guidelines
    • Videos

    Release Notes

    • Featured Updates
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • tvOS
    • Xcode
    • Downloads

    Explore Downloads

    • All Downloads
    • Operating Systems
    • Applications
    • Design Resources

    Featured

    • Xcode
    • TestFlight
    • Fonts
    • SF Symbols
    • Icon Composer
    • Support

    Explore Support

    • Overview
    • Help Guides
    • Developer Forums
    • Feedback Assistant
    • Contact Us

    Featured

    • Account Help
    • App Review Guidelines
    • App Store Connect Help
    • Upcoming Requirements
    • Agreements and Guidelines
    • System Status
  • Quick Links

    • Events
    • News
    • Forums
    • Sample Code
    • Videos
 

Vídeos

Abrir menu Fechar menu
  • Coleções
  • Todos os vídeos
  • Sobre

Mais vídeos

  • Sobre
  • Resumo
  • Código
  • Conclua tarefas em segundo plano

    Descubra os avanços na execução em segundo plano e entenda como o sistema programa o tempo de execução. Abordaremos como aproveitar ao máximo o tempo de execução em segundo plano para permitir que seu app ofereça recursos em segundo plano enquanto mantém uma ótima experiência em primeiro plano. Também vamos explicar como as APIs oferecem suporte ao tempo de execução em segundo plano para seu app e como cada API é adequada para diferentes casos de uso, incluindo as novas APIs do iOS e do iPadOS 26, que permitem que seu app conclua tarefas durante a transição do primeiro para o segundo plano.

    Capítulos

    • 0:00 - Apresentação
    • 1:22 - Introdução
    • 2:09 - Comportamentos e restrições
    • 7:29 - APIs de tarefas em segundo plano
    • 11:23 - Tarefas de processamento contínuo

    Recursos

    • Uploading asset resources in the background
    • Performing long-running tasks on iOS and iPadOS
    • Background Tasks
      • Vídeo HD
      • Vídeo SD
  • Buscar neste vídeo...
    • 8:27 - Register an app refresh task

      import BackgroundTasks
      import SwiftUI
      
      @main
      struct ColorFeed: App {
          var body: some Scene {
              WindowGroup {
                  // ...
              }
              .backgroundTask(.appRefresh("com.colorfeed.wwdc25.appRefresh")) {
                  await self.handleAppRefreshTask()
              }
          }
      }
    • 9:45 - Register a processing task

      import BackgroundTasks
      import UIKit
      
      class AppDelegate: UIResponder, UIApplicationDelegate {
          func application(
              _ application: UIApplication,
              didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
          ) -> Bool {
              BGTaskScheduler.shared.register(
                  forTaskWithIdentifier: "com.example.apple-samplecode.ColorFeed.db_cleaning",
                  using: nil
              ) { task in
                  self.handleAppRefresh(task: task as! BGProcessingTask)
              }
          }
      
          func submitProcessingTaskRequest() {
              let request = BGProcessingTaskRequest(
                  identifier: "com.example.apple-samplecode.ColorFeed.db_cleaning"
              )
              request.requiresNetworkConnectivity = true
              request.requiresExternalPower = true
      
              BGTaskScheduler.shared.submit(request)! 
          }
      }
    • 10:51 - Begin and end background task

      import UIKit
      
      @main
      class AppDelegate: UIResponder, UIApplicationDelegate {
          var backgroundTaskID: UIBackgroundTaskIdentifier = .invalid
         
          func saveState() { /*  ... */ }
      
          func handlePersistence() {
              let app = UIApplication.shared
              guard backgroundTaskID != .invalid else { return }
              backgroundTaskID = app.beginBackgroundTask(withName: "Finish Export") {
                  app.endBackgroundTask(self.backgroundTaskID)
                  self.backgroundTaskID = .invalid
              }
      
              self.saveState()
      
              app.endBackgroundTask(backgroundTaskID)
              backgroundTaskID = .invalid
          }
      }
    • 14:00 - Continued processing task registration

      import BackgroundTasks
      
      func handleDialogConfirmation() {
          BGTaskScheduler.shared.register("com.colorfeed.wwdc25.userTask") { task in
              let task = task as! BGContinuedProcessingTask
                                                                            
              var shouldContinue = true
              task.expirationHandler = {
                  shouldContinue = false
              }
      
              task.progress.totalUnitCount = 100
              task.progress.completedUnitCount = 0
      
              while shouldContinue {
                  // Do some work
                  task.progress.completedUnitCount += 1
              }
      
              task.setTaskCompleted(success: true)
          }
      }
    • 15:47 - Continued processing task submission

      import BackgroundTasks
      
      func submitContinuedProcessingTaskRequest() {
          let request = BGContinuedProcessingTaskRequest(
              identifier: "com.colorfeed.wwdc25.userTask",
              title: "A succinct title",
              subtitle: "A useful and informative subtitle"
          )
      
          request.strategy = .fail
      
          BGTaskScheduler.shared.submit(request)!
      }
    • 0:00 - Apresentação
    • Saiba como os apps podem usar o tempo de execução em segundo plano para executar tarefas como pré-busca e sincronização no seu app.

    • 1:22 - Introdução
    • Os apps são carregados na memória, ficam em primeiro plano e passam a ser o foco principal. Quando o usuário sai de um app, esse app vai para segundo plano e o sistema o suspende a fim de economizar bateria e recursos. Talvez o app precise de um tempo curto para concluir as tarefas. Ao retornar, ele é retomado para o primeiro plano.

    • 2:09 - Comportamentos e restrições
    • No iOS e no iPadOS, o tempo de execução em segundo plano é gerenciado com rigor para priorizar a duração da bateria e otimizar o desempenho. A execução em segundo plano é oportunista e opcional, e a energia é a restrição mais fundamental. Você deve projetar as tarefas em segundo plano do seu app para que sejam eficientes, leves e orientadas por objetivos. O sistema une o trabalho e pode limitar, suspender ou encerrar os processos que apresentam alto consumo de recursos. Mantenha o mínimo de trabalho em segundo plano, adie as tarefas que não são essenciais até o carregamento e garanta o caráter atômico e resiliente das tarefas. Os apps devem ser cordiais, respeitando as preferências das pessoas e as condições do sistema. O sistema oferece transparência aos usuários, permitindo que eles influenciem as decisões de programação. O sucesso das cargas de trabalho em segundo plano depende da adaptabilidade e do alinhamento delas às prioridades do sistema.

    • 7:29 - APIs de tarefas em segundo plano
    • O iOS e o iPadOS oferecem várias APIs para projetar tarefas executadas em segundo plano. O sistema otimiza essas tarefas com base nos padrões de uso do app e nas restrições do dispositivo. “BGAppRefreshTask” permite que os apps busquem conteúdo de forma silenciosa antes do uso, e os apps usados com mais frequência recebem programação mais frequente. As notificações por push em segundo plano ativam o app para que busque conteúdo novo quando o servidor envia uma notificação, mas essas notificações são consideradas opcionais e de baixa prioridade a fim de minimizar a sobrecarga. “BGProcessingTask” possibilita que os apps executem trabalhos mais complexos, como a execução de modelos de ML ou a manutenção de bancos de dados. Essa tarefa precisa ser registrada durante a inicialização, e é possível configurá-la para ser executada apenas quando o dispositivo estiver em um carregador e conectado a uma rede. As APIs beginBackgroundTask e endBackgroundTask oferecem mais tempo para que os apps concluam trabalhos cruciais, como salvar o estado ou encerrar conexões, ao fazer a transição para o segundo plano.

    • 11:23 - Tarefas de processamento contínuo
    • No iPadOS e no iOS 26, há uma nova API BGContinuedProcessingTask que permite que os apps concluam as tarefas iniciadas por alguém em primeiro plano, mesmo depois de terem sido colocados em segundo plano. Esse recurso aprimora a experiência ao permitir que o app conclua tarefas complexas sem que esteja aberto. Por exemplo, o app Diário usa essa API para exportar arquivos em segundo plano. Alguém inicia a exportação com um toque de botão, e o app apresenta atualizações de progresso por meio da UI do sistema. O usuário pode monitorar o progresso e cancelar a tarefa a qualquer momento, mantendo controle total. Essas tarefas sempre precisam começar com uma ação explícita, como um toque de botão ou um gesto. Elas representam objetivos claros e imediatos, como exportar arquivos, publicar conteúdo nas redes sociais ou concluir atualizações em acessórios conectados. O sistema espera que essas tarefas tenham um progresso mensurável. É necessário registrar um manipulador de inicialização para gerenciar o estado e os relatórios de progresso. Apresente atualizações oportunas sobre o progresso da carga de trabalho usando o protocolo de relatório de progresso. Se o progresso da tarefa estiver mais lento do que o esperado, o sistema solicitará que a pessoa decida se deve continuar. Quando a tarefa for concluída, será necessário informar o sistema usando o método “setTaskCompleted”. Além disso, o app deve lidar com possíveis interrupções de forma elegante, fornecendo um manipulador de expiração. A API também concede acesso à GPU em segundo plano nos dispositivos compatíveis, possibilitando que você crie experiências mais avançadas e eficientes em segundo plano. No entanto, lembre-se de que o iOS prioriza a experiência em primeiro plano, e as tarefas em segundo plano podem receber uma qualidade de serviço inferior. Mesmo assim, o sistema aumenta de forma inteligente a prioridade da tarefa quando o app retorna ao primeiro plano.

Developer Footer

  • Vídeos
  • WWDC25
  • Conclua tarefas em segundo plano
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • Apple Intelligence
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Downloads
    • Sample Code
    • Videos
    Open Menu Close Menu
    • Help Guides & Articles
    • Contact Us
    • Forums
    • Feedback & Bug Reporting
    • System Status
    Open Menu Close Menu
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles
    • Feedback Assistant
    Open Menu Close Menu
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program
    • Mini Apps Partner Program
    • News Partner Program
    • Video Partner Program
    • Security Bounty Program
    • Security Research Device Program
    Open Menu Close Menu
    • Meet with Apple
    • Apple Developer Centers
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Academies
    • WWDC
    Read the latest news.
    Get the Apple Developer app.
    Copyright © 2026 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines