Background Modes no iOS — o que é, quais são os modos e configuração

Autor: IT Sectr Publicado: 2026-03-27 Tempo de leitura: 9 min

Background Modes são um conjunto de capacidades declaráveis do iOS que permitem a um aplicativo continuar executando código após entrar em segundo plano. Cada modo corresponde a um tipo específico de tarefa: áudio, geolocalização, VoIP, Bluetooth, fetch e processing. De acordo com a Apple, 2026, o uso incorreto de Background Modes é uma das causas comuns de rejeição de aplicativos durante a revisão na App Store.

Pontos principais

  • Background Modes — conjunto de capacidades do iOS para execução legítima de código em segundo plano.
  • Modo Áudio — reprodução de música, podcasts, audiolivros em segundo plano com controle pela Central de Controle.
  • Geolocalização — rastreamento de localização em segundo plano para navegação e rastreadores fitness.
  • Bluetooth — trabalho com dispositivos BLE em segundo plano: pulseiras fitness, sensores, periféricos.
  • Revisão da Apple — uso indevido de modos leva à rejeição do aplicativo na App Store.

O que são Background Modes no iOS?

Background Modes são capacidades do projeto Xcode que declaram a intenção do aplicativo de realizar tipos específicos de operações em segundo plano. Ao contrário do Android, onde um aplicativo pode iniciar qualquer Service em segundo plano, o iOS exige declaração explícita do modo no Info.plist. Cada modo possui regras de uso rigorosas e é verificado pela Apple durante a revisão.

Como os Background Modes funcionam

Quando um aplicativo entra em segundo plano, o iOS o suspende em 3–5 segundos. Se o aplicativo declarar um Background Mode e usar ativamente a API correspondente (por exemplo, AVAudioSession para áudio), o sistema o coloca em um modo de execução especial. O aplicativo permanece na memória e pode executar código limitado pelo tipo de modo.

Lista completa de modos disponíveis

O iOS suporta os seguintes Background Modes: Áudio, Localização, VoIP, Bluetooth LE (acessórios BLE), Background Fetch (atualizações periódicas), Background Processing (tarefas longas), External Accessory Communication, Push to Talk (PTT) e HealthKit. Cada modo requer justificativa na descrição do aplicativo.

ModoChave Info.plistPropósitoVersão iOS
AudioaudioÁudio em segundo plano, AirPlay4.0+
LocationlocationRastreamento de localização4.0+
VoIPvoipNotificações push VoIP4.0+
BLEbluetooth-centralTrabalho com dispositivos BLE7.0+
FetchfetchDownload periódico de dados7.0+
ProcessingprocessingTarefas longas em segundo plano13.0+
Push to Talkpush-to-talkVoz push-to-talk16.0+

Modo Áudio (Áudio, AirPlay e Picture in Picture)

Modo Áudio em Segundo Plano é o modo mais comum, usado por players de música, aplicativos de podcast e serviços de áudio. O aplicativo pode continuar a reprodução de áudio, ser controlado pela Central de Controle e aparecer na Tela de Bloqueio. Para ativá-lo, basta configurar AVAudioSession com a categoria .playback.

Configurando a sessão de áudio

Para o áudio funcionar em segundo plano, é necessário configurar AVAudioSession e ativá-la. A categoria .playback informa ao sistema que o aplicativo está reproduzindo áudio e deve permanecer ativo em segundo plano. Sem esta configuração, o áudio parará 5–10 segundos após minimizar o aplicativo.

swift
import AVFoundation

func configureAudioSession() {
    let session = AVAudioSession.sharedInstance()
    do {
        try session.setCategory(
            .playback,
            mode: .default,
            options: []
        )
        try session.setActive(true)
    } catch {
        print("Erro na sessão de áudio: \(error)")
    }
}

Controlando a reprodução pela Central de Controle

Para integrar com a Central de Controle e a Tela de Bloqueio, é necessário configurar o MPRemoteCommandCenter. Ele gerencia os comandos Reproduzir, Pausar, Próxima e Anterior. Também é necessário atualizar o MPNowPlayingInfoProperty para exibir metadados: nome da faixa, artista, capa e progresso da reprodução.

Picture in Picture para vídeo

A partir do iOS 14, o Modo Áudio em Segundo Plano também suporta Picture in Picture para vídeo. O aplicativo pode continuar exibindo vídeo em uma janela flutuante ao ser minimizado. Para ativar, use AVPictureInPictureController com AVPlayerLayer. Este modo só funciona se o aplicativo estiver reproduzindo uma faixa de áudio.

Geolocalização (Atualizações de localização)

Modo de Localização em Segundo Plano permite que o aplicativo receba atualizações de localização em segundo plano. É usado em navegadores, rastreadores fitness, aplicativos de entrega e redes sociais. Sem este modo, o aplicativo recebe a localização apenas uma vez ao entrar em segundo plano, após o que as atualizações param.

Tipos de rastreamento de localização

CLLocationManager suporta várias estratégias de rastreamento: mudanças significativas de localização, rastreamento padrão e monitoramento de regiões. Para trabalhar em segundo plano com máxima precisão, use allowsBackgroundLocationUpdates = true e pausesLocationUpdatesAutomatically = false.

Eficiência energética e precisão

O rastreamento contínuo de localização em segundo plano é um dos cenários que mais consomem energia. O iOS ajusta automaticamente a frequência de atualizações com base na velocidade de movimento: ao caminhar, atualizações a cada 10–30 segundos; ao dirigir, a cada 1–5 segundos. Para navegação, use desiredAccuracy = kCLLocationAccuracyBestForNavigation.

swift
let locationManager = CLLocationManager()
locationManager.requestAlwaysAuthorization()
locationManager.allowsBackgroundLocationUpdates = true
locationManager.pausesLocationUpdatesAutomatically = false
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.activityType = .fitness
locationManager.startUpdatingLocation()

Mudanças significativas de localização

O modo significant-change location funciona sem o Modo de Localização em Segundo Plano — o sistema acorda o aplicativo apenas quando as coordenadas mudam significativamente (geralmente 500 m ou mais). Não requer GPS constante, economizando bateria. Adequado para aplicativos de clima que atualizam dados quando o usuário se desloca.

Modo Bluetooth (Acessórios LE)

Modo Bluetooth LE em Segundo Plano permite que o aplicativo interaja com dispositivos BLE em segundo plano. É usado em pulseiras fitness, sensores médicos, dispositivos Smart Home e navegação por beacons. O modo se divide em dois subtipos: bluetooth-central (o aplicativo se conecta a dispositivos) e bluetooth-peripheral (o aplicativo atua como um dispositivo).

Trabalhando no modo Central

Um aplicativo atuando como Central pode escanear e conectar-se a dispositivos BLE em segundo plano. Para isso, especifique bluetooth-central em Background Modes e chame CBCentralManager.scanForPeripherals com a opção CBCentralManagerScanOptionAllowDuplicatesKey. Em segundo plano, a varredura opera em frequência reduzida — o sistema pode atrasar a descoberta para economizar energia.

Trabalhando no modo Peripheral

Um aplicativo atuando como Peripheral pode anunciar serviços e responder a solicitações de outros dispositivos. O modo bluetooth-peripheral permite que o aplicativo permaneça visível para outros dispositivos BLE mesmo em segundo plano. É usado em aplicativos HealthKit e soluções IoT.

Monitoramento de Beacons e Regiões

O monitoramento de iBeacon funciona em segundo plano sem permissões adicionais — o próprio sistema rastreia a entrada e saída de regiões Beacon. Mas para escanear o conteúdo do Beacon (UUID de proximidade, major, minor), é necessária permissão Bluetooth e o modo bluetooth-central Background Mode. Use CLLocationManager com CLBeaconRegion para monitoramento.

VoIP e PushKit para aplicativos de comunicação

Modo VoIP em Segundo Plano é projetado para aplicativos de comunicação por voz (Skype, Zoom, WhatsApp). Este modo permite que o aplicativo permaneça conectado ao servidor para receber chamadas recebidas. A partir do iOS 8, o PushKit é usado para VoIP — um framework que gerencia notificações push do servidor VoIP sem envolver APNs.

PushKit para chamadas recebidas

PushKit é o único mecanismo que garante a entrega de notificações VoIP ao dispositivo. Ao receber uma notificação PushKit, o sistema acorda o aplicativo, mesmo que ele tenha sido encerrado. O aplicativo deve estabelecer uma conexão com o servidor em 30 segundos e exibir uma notificação local para a chamada recebida.

swift
import PushKit

class VoIPHandler: NSObject, PKPushRegistryDelegate {
    func pushRegistry(
        _ registry: PKPushRegistry,
        didReceiveIncomingPushWith payload: PKPushPayload,
        for type: PKPushType,
        completion: @escaping () -> Void
    ) {
        let caller = payload.dictionaryPayload["caller"] as! String
        reportIncomingCall(from: caller)
        completion()
    }
}

Regras de uso do PushKit

PushKit não pode ser usado para notificações comuns — apenas para VoIP, comunicações watchOS e provedores de arquivos. A Apple verifica isso durante a revisão. O uso indevido leva à rejeição do aplicativo. A partir do iOS 13, o PushKit apenas entrega a notificação — chamar CXProvider (CallKit) para exibir a tela de chamada é obrigatório.

Modos Fetch e Processing

Background Fetch e Background Processing são modos para atualizações de conteúdo em segundo plano e tarefas longas. Fetch é para atualizações periódicas curtas (até 30 s), Processing é para tarefas longas (até 10 min) com condições (Wi-Fi, carregamento). Processing está disponível apenas no iOS 13+.

Background Fetch — Atualizações rápidas

O modo Fetch permite que o sistema acorde periodicamente o aplicativo para baixar conteúdo novo. O sistema analisa o comportamento do usuário e seleciona o momento ideal. O aplicativo deve chamar o completion handler em 30 segundos. Fetch é adequado para aplicativos de notícias, feeds de redes sociais e clima.

Background Processing — Tarefas longas

BGProcessingTask é projetada para tarefas que podem ser executadas sem intervenção do usuário: limpeza de cache, sincronização de grande banco de dados, processamento de arquivos de mídia. O sistema inicia a tarefa apenas sob condições favoráveis — dispositivo carregando, conectado ao Wi-Fi, não no modo de baixo consumo. Disponível por até 10 minutos.

Agendamento e requisitos

Para BGProcessingTask, é necessário especificar requiresExternalPower e requiresNetworkConnectivity. O sistema pode adiar a execução indefinidamente se as condições não forem atendidas. Ao contrário do BGAppRefreshTask, que deve ser executado pelo menos uma vez por dia, o Processing pode não ser executado por semanas se o dispositivo raramente estiver carregando.

Diretrizes de revisão da App Store para Background Modes

A Apple verifica rigorosamente o uso de Background Modes durante a revisão de aplicativos. A regra principal: cada modo ativado deve ser justificado pela funcionalidade do aplicativo. Se um aplicativo declarar Location Mode, mas não usar geolocalização, será rejeitado com a exigência de remover a capacidade.

Causas comuns de rejeição

As violações mais comuns: Location Mode sem necessidade explícita (o aplicativo solicita acesso “Sempre” para exibir anúncios), Audio Mode sem reprodução de áudio em segundo plano, VoIP sem PushKit, BLE Mode sem dispositivos Bluetooth. A Apple pode rejeitar o aplicativo mesmo na fase de atualização se o modo não for mais usado.

Descrição nas notas de revisão

Ao enviar para revisão, forneça justificativa específica para cada modo nas Notas. Por exemplo, “O Location Background Mode é usado para rastrear a rota do usuário no recurso de fitness.” Sem explicação, o revisor pode rejeitar o aplicativo. Para funções confidenciais (VoIP), a Apple pode solicitar uma conta de teste.

Recomendações para minimizar modos

Use o conjunto mínimo necessário de modos. Se seu aplicativo precisar de download de dados em segundo plano uma vez por hora — não ative Location Mode, use Fetch ou BGAppRefreshTask. Modos extras não só levam à rejeição, mas também criam uma impressão negativa: o usuário vê nas Configurações que o aplicativo usa geolocalização em segundo plano.

Perguntas frequentes

Quantos Background Modes podem ser ativados em um aplicativo?

Não há limite de quantidade, mas cada modo deve ser justificado pela funcionalidade do aplicativo. Ativar todos os modos sem necessidade é uma razão garantida de rejeição durante a revisão. Um limite prático é 2–3 modos por aplicativo, caso contrário o usuário verá muitas solicitações de permissão.

Como verificar se um Background Mode está ativo?

Use UIApplication.shared.applicationState — o aplicativo pode verificar se está em segundo plano (state == .background). Você também pode observar as notificações UIApplication.didEnterBackgroundNotification e willEnterForegroundNotification para alternar o comportamento.

Qual a diferença entre os modos Audio e AirPlay Background?

Audio — reprodução de som pelo alto-falante ou fones de ouvido. AirPlay — transmissão de áudio e vídeo para Apple TV e outros dispositivos AirPlay. Na prática, o Audio Mode cobre ambos os cenários, pois o AirPlay usa a sessão de áudio. Um modo AirPlay separado não é necessário desde o iOS 7+.

Posso usar Localização em Segundo Plano apenas quando o aplicativo estiver aberto?

Sim, para isso use requestWhenInUseAuthorization() em vez de requestAlwaysAuthorization(). O aplicativo receberá localização apenas em primeiro plano. Se precisar de rastreamento curto em segundo plano, chame startUpdatingLocation() e pare em willResignActive.

Como os Background Modes afetam a bateria?

Cada modo aumenta o consumo de energia. Location Mode é o mais exigente, pode reduzir a vida da bateria em 30–50% com rastreamento contínuo. Audio Mode é moderado (15–20%). Fetch e Processing são mínimos (2–5%). BLE Mode é baixo (5–10%) graças à eficiência energética do Bluetooth LE.

Resumo

  • Background Modes — capacidades declaráveis do iOS que permitem a um aplicativo executar código legitimamente em segundo plano.
  • Audio Mode — o mais comum, para reproduzir música, podcasts e vídeo via AVAudioSession com a categoria .playback.
  • Location Mode — para navegação e fitness, o que mais consome energia, requer requestAlwaysAuthorization e allowsBackgroundLocationUpdates.
  • BLE Mode — trabalho com dispositivos Bluetooth em segundo plano via CBCentralManager com varredura em segundo plano.
  • VoIP e PushKit — para aplicativos de comunicação, garante a entrega de chamadas recebidas via PKPushRegistry.
  • Fetch e Processing — tarefas curtas e longas em segundo plano com diferentes condições de execução e limites de tempo.
  • A Apple verifica rigorosamente a justificativa de cada modo — o uso indevido leva à rejeição do aplicativo na App Store.

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também