Background Modes sa iOS — ano ito, anong mga mode at pag-configure

May-akda: IT Sectr Nai-publish: 2026-03-27 Oras ng pagbabasa: 9 min

Background Modes — ay isang set ng mga maaaring ideklarang kakayahan ng iOS na nagpapahintulot sa app na magpatuloy sa pag-execute ng code pagkatapos lumipat sa background mode. Ang bawat mode ay tumutugma sa isang tiyak na uri ng gawain: audio, geolocation, VoIP, Bluetooth, fetch at processing. Ayon sa Apple, 2026, ang hindi tamang paggamit ng Background Modes ay isa sa mga karaniwang dahilan ng pagtanggi ng mga app sa pagsusuri sa App Store.

Mga Pangunahing Punto

  • Background Modes — set ng iOS capability para sa lehitimong pag-execute ng code sa background.
  • Mode ng audio — pag-play ng musika, podcast, audiobook sa background na may kontrol sa pamamagitan ng Control Center.
  • Geolocation — pagsubaybay sa lokasyon sa background para sa nabigasyon at fitness tracker.
  • Bluetooth — pagtatrabaho sa mga BLE device sa background: fitness bands, sensor, peripherals.
  • Pagsusuri ng Apple — ang hindi wastong paggamit ng mga mode ay humahantong sa pagtanggi ng app mula sa App Store.

Ano ang Background Modes sa iOS?

Background Modes — ay mga capability ng proyekto sa Xcode na nagdedeklara ng intensyon ng app na magsagawa ng mga tiyak na uri ng operasyon sa background. Hindi tulad ng Android, kung saan ang app ay maaaring magpatakbo ng anumang Service sa background, ang iOS ay nangangailangan ng malinaw na pagtukoy ng mode sa Info.plist. Ang bawat mode ay may mahigpit na panuntunan sa paggamit at sinusuri ng Apple sa pagsusuri.

Paano gumagana ang Background Modes

Kapag lumipat ang app sa background, sinuspinde ito ng iOS pagkatapos ng 3–5 segundo. Kung ang app ay nagdedeklara ng Background Mode at aktibong gumagamit ng kaukulang API (hal. AVAudioSession para sa audio), inililipat ito ng system sa isang espesyal na mode ng pag-execute. Ang app ay nananatili sa RAM at maaaring mag-execute ng code na nililimitahan ng uri ng mode.

Kumpletong listahan ng mga available na mode

Sinusuportahan ng iOS ang mga sumusunod na Background Modes: Audio, Location, VoIP, Bluetooth LE, Background Fetch, Background Processing, External Accessory Communication, Push to Talk (PTT) at HealthKit. Ang bawat mode ay nangangailangan ng katwiran sa paglalarawan ng app.

ModeSusi ng Info.plistLayuninBersyon ng iOS
AudioaudioAudio sa background, AirPlay4.0+
LocationlocationPagsubaybay sa lokasyon4.0+
VoIPvoipVoIP push notification4.0+
BLEbluetooth-centralPagtatrabaho sa mga BLE device7.0+
FetchfetchPana-panahong pag-download ng data7.0+
ProcessingprocessingMahahabang gawain sa background13.0+
Push to Talkpush-to-talkVoice push-to-talk16.0+

Mode ng audio (Audio, AirPlay at Picture in Picture)

Audio Background Mode — ang pinakakaraniwang mode, ginagamit ng mga music player, podcast app at audio service. Ang app ay maaaring magpatuloy sa pag-play ng tunog, kontrolin sa pamamagitan ng Control Center at ipakita sa Lock Screen. Para sa pag-activate, sapat na i-configure ang AVAudioSession na may kategoryang .playback.

Pag-configure ng audio session

Para sa audio sa background, kailangan mong i-configure ang AVAudioSession at i-activate ito. Ang kategoryang .playback ay nagpapaalam sa system na ang app ay nagpe-play ng tunog at dapat manatiling aktibo sa background. Kung wala ang configuration na ito, ang tunog ay hihinto sa loob ng 5–10 segundo pagkatapos i-minimize ang app.

swift
import AVFoundation

func configureAudioSession() {
    let session = AVAudioSession.sharedInstance()
    do {
        try session.setCategory(
            .playback,
            mode: .default,
            options: []
        )
        try session.setActive(true)
    } catch {
        print("Error sa audio session: \(error)")
    }
}

Pagkontrol ng pag-play mula sa Control Center

Para sa integrasyon sa Control Center at Lock Screen, kailangan mong i-configure ang MPRemoteCommandCenter. Pinoproseso nito ang mga command na Play, Pause, Next at Previous Track. Kailangan ding i-update ang MPNowPlayingInfoProperty para sa pagpapakita ng metadata: pamagat ng kanta, artista, cover at progreso ng pag-play.

Picture in Picture para sa video

Simula sa iOS 14, sinusuportahan din ng Background Mode audio ang Picture in Picture para sa video. Ang app ay maaaring magpatuloy sa pagpapakita ng video sa isang lumulutang na window kapag na-minimize. Para sa pag-activate, gamitin ang AVPictureInPictureController na may AVPlayerLayer. Ang mode ay gagana lamang kung ang app ay nagpe-play ng audio track.

Geolocation (Location updates)

Location Background Mode ay nagpapahintulot sa app na makatanggap ng mga update sa geolocation sa background. Ginagamit sa mga navigator, fitness tracker, delivery app at social network. Kung wala ang mode na ito, ang app ay makakatanggap lamang ng lokasyon nang isang beses kapag lumipat sa background, pagkatapos ay hihinto ang mga update.

Mga uri ng pagsubaybay sa lokasyon

Ang CLLocationManager ay sumusuporta sa ilang diskarte sa pagsubaybay: makabuluhang pagbabago (significant-change location), karaniwang pagsubaybay (standard location) at pag-monitor ng rehiyon (region monitoring). Para sa pagtatrabaho sa background na may maximum na katumpakan, gamitin ang allowsBackgroundLocationUpdates = true at pausesLocationUpdatesAutomatically = false.

Episyente sa enerhiya at katumpakan

Ang patuloy na pagsubaybay sa lokasyon sa background ay isa sa mga pinaka-enerhiya na senaryo. Awtomatikong inaayos ng iOS ang dalas ng update batay sa bilis ng paggalaw: kapag naglalakad bawat 10–30 segundo, kapag nagmamaneho bawat 1–5 segundo. Para sa nabigasyon, gamitin ang desiredAccuracy = kCLLocationAccuracyBestForNavigation.

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

Makabuluhang pagbabago sa lokasyon

Ang mode na significant-change location ay gumagana nang walang Location Background Mode — ginigising ng system ang app lamang sa makabuluhang pagbabago ng mga coordinate (karaniwang 500 m o higit pa). Hindi nangangailangan ng patuloy na GPS, na nakakatipid sa baterya. Angkop para sa mga app ng panahon na nag-a-update ng data kapag gumagalaw ang user.

Mode ng Bluetooth (LE accessories)

Bluetooth LE Background Mode ay nagpapahintulot sa app na makipag-ugnayan sa mga BLE device sa background. Ginagamit ng mga fitness band, medical sensor, Smart Home device at Beacon navigation. Ang mode ay nahahati sa dalawang subtype: bluetooth-central (ang app ay kumokonekta sa mga device) at bluetooth-peripheral (ang app ay kumikilos bilang device).

Pagtatrabaho sa Central mode

Ang app sa papel ng Central ay maaaring mag-scan at kumonekta sa mga BLE device sa background. Para dito, kailangan mong tukuyin ang bluetooth-central sa Background Modes at tawagan ang CBCentralManager.scanForPeripherals na may opsyon na CBCentralManagerScanOptionAllowDuplicatesKey. Sa background, ang pag-scan ay gumagana sa mas mababang frequency — maaaring antalahin ng system ang pagtuklas para makatipid ng enerhiya.

Pagtatrabaho sa Peripheral mode

Ang app sa papel ng Peripheral ay maaaring mag-anunsyo ng mga serbisyo at tumugon sa mga kahilingan ng iba pang mga device. Ang mode na bluetooth-peripheral ay nagpapahintulot sa app na manatiling nakikita para sa iba pang mga BLE device kahit sa background. Ginagamit sa mga HealthKit app at IoT solution.

Beacon at Region Monitoring

Ang pag-monitor ng iBeacon ay gumagana sa background nang walang karagdagang pahintulot — ang system mismo ay sumusubaybay sa pagpasok at paglabas mula sa Beacon region. Ngunit para sa pag-scan ng nilalaman ng Beacon (proximity UUID, major, minor) kinakailangan ang pahintulot ng Bluetooth at bluetooth-central Background Mode. Gamitin ang CLLocationManager na may CLBeaconRegion para sa pag-monitor.

VoIP at PushKit para sa mga app ng komunikasyon

VoIP Background Mode ay nilayon para sa mga app ng voice communication (Skype, Zoom, WhatsApp). Ang mode ay nagpapahintulot sa app na manatiling konektado sa server para makatanggap ng mga papasok na tawag. Simula sa iOS 8, para sa VoIP ay ginagamit ang PushKit — isang framework na nagpo-proseso ng mga Push notification mula sa VoIP server nang walang partisipasyon ng APNs.

PushKit para sa mga papasok na tawag

Ang PushKit ay ang tanging mekanismo na ginagarantiyahan ang paghahatid ng VoIP notification sa device. Sa pagtanggap ng PushKit notification, ginigising ng system ang app, kahit na ang app ay natapos na. Ang app ay dapat kumonekta sa server sa loob ng 30 segundo at magpakita ng lokal na notification tungkol sa papasok na tawag.

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()
    }
}

Mga panuntunan sa paggamit ng PushKit

Ang PushKit ay hindi maaaring gamitin para sa mga ordinaryong notification — para lamang sa VoIP, watchOS communication at file provider. Sinusuri ito ng Apple sa pagsusuri. Kung hindi wasto ang paggamit, ang app ay tatanggihan. Simula sa iOS 13, ang PushKit ay naghahatid lamang ng notification — ang pagtawag sa CXProvider (CallKit) para sa pagpapakita ng screen ng tawag ay sapilitan.

Mga Mode ng Fetch at Processing

Background Fetch at Background Processing — mga mode para sa pag-update ng content sa background at pag-execute ng mahahabang gawain. Fetch — maiikling pana-panahong update (hanggang 30 s), Processing — mahahabang gawain (hanggang 10 min) na may kondisyon (Wi-Fi, pagkarga). Ang Processing ay available lamang mula sa iOS 13+.

Background Fetch — mabilis na update

Ang mode na Fetch ay nagpapahintulot sa system na pana-panahong gisingin ang app para kumuha ng bagong content. Sinusuri ng system ang pag-uugali ng user at pinipili ang pinakamainam na oras. Ang app ay dapat tumawag sa completion handler sa loob ng 30 segundo. Ang Fetch ay angkop para sa mga app ng balita, social media feed at panahon.

Background Processing — mahahabang gawain

Ang BGProcessingTask ay nilayon para sa mga gawain na maaaring isagawa nang walang partisipasyon ng user: paglilinis ng cache, pag-sync ng malaking database, pag-proseso ng media file. Pinapatakbo ng system ang gawain lamang sa paborableng kondisyon — device na nagcha-charge, naka-konekta sa Wi-Fi, wala sa Low Power mode. Available hanggang 10 minuto.

Pag-iiskedyul at mga kinakailangan

Para sa BGProcessingTask, kailangan mong tukuyin ang requiresExternalPower at requiresNetworkConnectivity. Maaaring antalahin ng system ang pag-execute nang walang tiyak na oras kung hindi natutugunan ang mga kondisyon. Hindi tulad ng BGAppRefreshTask na dapat mag-execute nang kahit isang beses sa isang araw, ang Processing ay maaaring hindi mag-execute nang ilang linggo kung ang device ay bihirang i-charge.

App Store Review Guidelines para sa Background Modes

Mahigpit na sinusuri ng Apple ang paggamit ng Background Modes sa pagsusuri ng mga app. Pangunahing panuntunan: bawat naka-enable na mode ay dapat na makatwiran sa functionality ng app. Kung ang app ay nagdedeklara ng Location Mode ngunit hindi gumagamit ng geolocation, ito ay tatanggihan na may kahilingan na alisin ang capability.

Mga karaniwang dahilan ng pagtanggi

Pinakakaraniwang paglabag: Location Mode nang walang malinaw na pangangailangan (app humihingi ng “Always” access para magpakita ng ads), Audio Mode nang walang pag-play ng tunog sa background, VoIP nang walang PushKit, BLE Mode nang walang Bluetooth device. Maaaring tanggihan ng Apple ang app kahit sa yugto ng update kung hindi na ginagamit ang mode.

Paglalarawan sa pagsusuri

Kapag isinumite para sa pagsusuri, ibigay sa Notes ang konkretong katwiran para sa bawat mode. Halimbawa, “Ang Location Background Mode ay ginagamit para subaybayan ang ruta ng user sa fitness function”. Kung walang paliwanag, maaaring tanggihan ng reviewer ang app. Para sa mga kumpidensyal na function (VoIP), maaaring humingi ang Apple ng test account.

Mga rekomendasyon para sa pag-minimize ng mga mode

Gamitin ang minimal na kinakailangang set ng mga mode. Kung ang app ay nangangailangan ng pag-download ng data sa background isang beses bawat oras — huwag i-enable ang Location Mode, gamitin ang Fetch o BGAppRefreshTask. Ang mga labis na mode ay hindi lamang humahantong sa pagtanggi, ngunit lumilikha din ng negatibong impresyon: nakikita ng user sa mga setting na ginagamit ng app ang geolocation sa background.

Mga Madalas Itanong

Ilang Background Mode ang maaaring i-enable sa isang app?

Walang limitasyon sa bilang, ngunit bawat mode ay dapat na makatwiran sa functionality ng app. Ang pag-enable ng lahat ng mode nang walang pangangailangan ay garantisadong dahilan ng pagtanggi sa pagsusuri. Praktikal na limitasyon ay 2–3 mode bawat app, kung hindi makikita ng user ang maraming kahilingan sa pahintulot.

Paano suriin kung aktibo ang Background Mode?

Gamitin ang UIApplication.shared.applicationState — maaaring suriin ng app kung nasa background ito (state == .background). Maaari ring subaybayan ang mga notification na UIApplication.didEnterBackgroundNotification at willEnterForegroundNotification para baguhin ang pag-uugali.

Ano ang pagkakaiba sa pagitan ng Audio at AirPlay Background Modes?

Audio — pag-play ng tunog sa pamamagitan ng speaker o headphone. AirPlay — pagpapadala ng audio at video sa Apple TV at iba pang AirPlay device. Sa praktika, ang Audio Mode ay sumasaklaw sa parehong senaryo dahil ang AirPlay ay gumagamit ng audio session. Hindi kailangan ang hiwalay na AirPlay mode mula noong iOS 7+.

Maaari bang gamitin ang Background Location lamang kapag bukas ang app?

Oo, para dito gamitin ang requestWhenInUseAuthorization() sa halip na requestAlwaysAuthorization(). Ang app ay makakatanggap lamang ng lokasyon sa foreground. Kung kinakailangan ang panandaliang pagsubaybay sa background — tawagan ang startUpdatingLocation() at ihinto sa willResignActive.

Paano naaapektuhan ng Background Modes ang baterya?

Ang bawat mode ay nagpapataas ng konsumo ng enerhiya. Location Mode — pinakamahal, maaaring bawasan ang oras ng paggamit ng 30–50% sa patuloy na pagsubaybay. Audio Mode — katamtaman (15–20%). Fetch at Processing — minimal (2–5%). BLE Mode — mababa (5–10%) dahil sa energy efficiency ng Bluetooth LE.

Buod

  • Background Modes — mga maaaring ideklarang iOS capability na nagpapahintulot sa app na lehitimong mag-execute ng code sa background.
  • Audio Mode — pinakakaraniwan, para sa pag-play ng musika, podcast at video sa pamamagitan ng AVAudioSession na may kategoryang .playback.
  • Location Mode — para sa nabigasyon at fitness, pinakamaraming enerhiya, nangangailangan ng requestAlwaysAuthorization at allowsBackgroundLocationUpdates.
  • BLE Mode — pagtatrabaho sa mga Bluetooth device sa background sa pamamagitan ng CBCentralManager na may background scanning.
  • VoIP at PushKit — para sa mga app ng komunikasyon, ginagarantiyahan ang paghahatid ng mga papasok na tawag sa pamamagitan ng PKPushRegistry.
  • Fetch at Processing — maiikli at mahahabang gawain sa background na may iba't ibang kondisyon ng pag-execute at limitasyon sa oras.
  • Mahigpit na sinusuri ng Apple ang katwiran ng bawat mode — ang hindi wastong paggamit ay humahantong sa pagtanggi ng app mula sa App Store.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din