मोबाइल डेवलपमेंट में बैकग्राउंड एग्ज़ीक्यूशन — सार, सीमाएँ और कार्य सिद्धांत

लेखक: IT Sectr प्रकाशित: 2026-03-26 पढ़ने का समय: 9 मिनट

Background Execution एक तंत्र है जो मोबाइल एप्लिकेशन कोड को तब चलाने की अनुमति देता है जब एप्लिकेशन फ़ोरग्राउंड में नहीं होता है। इस तंत्र के बिना, सिस्टम एप्लिकेशन को मिनिमाइज़ करने पर रोक देता है। Apple, 2026 के अनुसार, iOS बैकग्राउंड समय को 30 सेकंड तक सीमित करता है, जबकि Android WorkManager और Foreground Service के माध्यम से अधिक लचीले परिदृश्य प्रदान करता है।

मुख्य बिंदु

  • Background Execution — एप्लिकेशन कोड का निष्पादन जब यह मिनिमाइज़्ड या निष्क्रिय हो।
  • iOS — सख्त सीमाएँ: कार्यों के लिए 30 सेकंड, कठोर Background Modes और App Refresh।
  • Android — WorkManager, Foreground Service, Scheduling और Doze mode विभिन्न प्रतिबंधों के साथ।
  • ऊर्जा खपत — सीमाओं का मुख्य कारण: बैकग्राउंड प्रक्रियाएँ डिवाइस की बैटरी लाइफ कम करती हैं।
  • गोपनीयता — Android 8 और iOS 13 से, सिस्टम को बैकग्राउंड कार्य के लिए स्पष्ट अनुमतियों की आवश्यकता होती है।

मोबाइल एप्लिकेशन में बैकग्राउंड एग्ज़ीक्यूशन क्या है?

Background Execution एक एप्लिकेशन की क्षमता है जो उपयोगकर्ता द्वारा इसे मिनिमाइज़ करने या किसी अन्य एप्लिकेशन पर स्विच करने के बाद कोड चलाना जारी रखता है। विशेष तंत्र के बिना, मोबाइल OS बैकग्राउंड में जाने के कुछ सेकंड के भीतर एप्लिकेशन को Suspended स्थिति में डाल देता है, सक्रिय एप्लिकेशन के लिए CPU और मेमोरी मुक्त करता है।

बैकग्राउंड में एप्लिकेशन की स्थितियाँ

मोबाइल एप्लिकेशन जीवनचक्र की कई स्थितियों से गुज़रता है: Foreground (सक्रिय), Background (बैकग्राउंड में), Suspended (रोका गया) और Terminated (समाप्त)। Background एकमात्र ऐसी स्थिति है जिसमें एप्लिकेशन बिना दृश्य इंटरफ़ेस के कोड निष्पादित कर सकता है। iOS और Android इस स्थिति में अवधि और उपलब्ध संचालन को अलग-अलग परिभाषित करते हैं।

मुख्य उपयोग मामले

डेटा सिंक्रोनाइज़ेशन, कंटेंट डाउनलोडिंग, Push सूचना प्रसंस्करण, बैकग्राउंड जियोलोकेशन और ऑडियो प्लेबैक के लिए बैकग्राउंड निष्पादन आवश्यक है। सिंक्रोनाइज़ेशन सबसे सामान्य परिदृश्य है: एप्लिकेशन उपयोगकर्ता की भागीदारी के बिना सर्वर पर डेटा भेजता है या अपडेट डाउनलोड करता है।

  • सिंक्रोनाइज़ेशन — नेटवर्क स्थिति बदलने पर डेटा अपलोड और डाउनलोड करना।
  • जियोलोकेशन — फ़िटनेस ट्रैकर और नेविगेशन में स्थान ट्रैक करना।
  • मीडिया — बैकग्राउंड में ऑडियो और वीडियो चलाना (संगीत, पॉडकास्ट)।
  • सूचनाएँ — Push और स्थानीय सूचनाओं का प्रसंस्करण।
  • डाउनलोड — बैकग्राउंड में बड़ी फ़ाइलें (पॉडकास्ट, वीडियो) डाउनलोड करना।

मोबाइल OS बैकग्राउंड एग्ज़ीक्यूशन को क्यों सीमित करते हैं

बैकग्राउंड निष्पादन पर सीमाएँ तीन कारकों के कारण हैं: ऊर्जा खपत, डिवाइस प्रदर्शन और उपयोगकर्ता गोपनीयता। CPU और रेडियो मॉड्यूल (Wi-Fi, सेल्युलर डेटा) सबसे अधिक ऊर्जा की खपत करते हैं — प्रत्येक बैकग्राउंड प्रक्रिया बैटरी जीवन को कम करती है।

ऊर्जा खपत और बैटरी जीवन

Google के अध्ययन दिखाते हैं कि हर 5 मिनट में बैकग्राउंड कार्य चलाने वाले एप्लिकेशन एक दिन में डिवाइस की बैटरी लाइफ को 20–30% तक कम कर देते हैं। यहाँ तक कि एक घंटे की आवृत्ति वाले अनुकूलित बैकग्राउंड ऑपरेशन भी ध्यान देने योग्य प्रभाव डालते हैं यदि ऐसे दो से अधिक एप्लिकेशन हों।

RAM और प्रदर्शन

प्रत्येक बैकग्राउंड एप्लिकेशन RAM लेता है। RAM की कमी होने पर, सिस्टम एप्लिकेशन को मेमोरी से हटा देता है, जिससे उपयोगकर्ता के वापस आने पर पुनरारंभ होता है। iOS Jetsam एल्गोरिदम का उपयोग करता है — मेमोरी सीमा पार होने पर बैकग्राउंड प्रक्रियाओं को जबरन समाप्त करने का तंत्र। Android समान सिद्धांत के साथ LMK (Low Memory Killer) का उपयोग करता है।

उपयोगकर्ता गोपनीयता

Android 10 और iOS 13 से, सिस्टम को एप्लिकेशन से बैकग्राउंड कार्य के उद्देश्य की घोषणा करने की आवश्यकता होती है। Android ने बैकग्राउंड में Broadcast Receiver लॉन्च करने पर प्रतिबंध लगाया। iOS को प्रोजेक्ट Capabilities में Background Mode निर्दिष्ट करने की आवश्यकता है। उपयोगकर्ता सेटिंग में किसी भी एप्लिकेशन के लिए बैकग्राउंड निष्पादन बंद कर सकता है।

OSसंस्करणप्रतिबंधप्रभाव
Android8.0IMPLICIT_BROADCAST प्रतिबंधित67% बैकग्राउंड Broadcast टूटे
Android9.0Doze बेहतरनेटवर्क कॉल प्रतिबंधित
Android12+Foreground Service प्रतिबंधितबैकग्राउंड से लॉन्च प्रतिबंधित
iOS7+Background App Refreshआवधिक अद्यतन विंडो
iOS13+BGTaskSchedulerनिष्पादन के बजाय शेड्यूलिंग

Android पर Background Execution: WorkManager और Foreground Service

Android बैकग्राउंड निष्पादन के लिए कई तंत्र प्रदान करता है, प्रत्येक कार्यों की एक अलग श्रेणी को हल करता है। WorkManager विलंबित और आवधिक कार्यों के लिए अनुशंसित API है। Foreground Service दृश्य सूचना के साथ तत्काल निष्पादन के लिए है। JobScheduler WorkManager का निम्न-स्तरीय विकल्प है।

WorkManager — सार्वभौमिक समाधान

WorkManager Android Jetpack का हिस्सा है, जो डिवाइस रीबूट के बाद भी पूर्णता की गारंटी के साथ बैकग्राउंड कार्य निष्पादन प्रदान करता है। API नेटवर्क स्थिति, बैटरी स्तर और Doze मोड को ध्यान में रखते हुए इष्टतम निष्पादन समय चुनता है। WorkManager API 14+ के साथ संगत है और पुराने AlarmManager और JobScheduler को बदलता है।

Foreground Service — लंबे संचालन के लिए

जब एप्लिकेशन को उपयोगकर्ता को दिखाई देने वाला कार्य करने की आवश्यकता होती है (संगीत चलाना, जियोलोकेशन रिकॉर्ड करना), Foreground Service का उपयोग किया जाता है। सेवा स्टेटस बार में एक स्थायी सूचना दिखाती है और उच्च प्राथमिकता रखती है — सिस्टम कार्य पूरा होने तक इसे समाप्त नहीं करेगा। Android 13 से, POST_NOTIFICATIONS अनुमति आवश्यक है।

Doze Mode और बैटरी अनुकूलन

Android 6.0 से, डिवाइस निष्क्रिय होने पर Doze मोड में प्रवेश करता है। इस मोड में, नेटवर्क संचालन, सिंक्रोनाइज़ेशन और JobScheduler स्थगित कर दिए जाते हैं। WorkManager स्वचालित रूप से Doze के अनुकूल हो जाता है — कार्य अगले Maintenance Window के दौरान निष्पादित होते हैं जब डिवाइस सेवा के लिए जागता है।

iOS पर Background Execution: Background Tasks और App Refresh

iOS बैकग्राउंड निष्पादन के लिए अधिक सख्त दृष्टिकोण का उपयोग करता है। Background App Refresh आवधिक डेटा अद्यतन के लिए प्राथमिक तंत्र है। BGTaskScheduler सिस्टम स्थिति के आधार पर कार्यों को शेड्यूल करने के लिए API है। लंबे संचालन के लिए Background Modes उपलब्ध हैं: audio, location, voip, fetch और processing।

Background App Refresh

Background App Refresh एप्लिकेशन को डेटा सिंक्रोनाइज़ करने के लिए हर 15–30 मिनट में जागने की अनुमति देता है। जागने का समय उपयोगकर्ता के व्यवहार पर निर्भर करता है — सिस्टम विश्लेषण करता है कि वे एप्लिकेशन को कितनी बार खोलते हैं। उपयोगकर्ता Settings — General — Background App Refresh में व्यक्तिगत एप्लिकेशन के लिए इस सुविधा को बंद कर सकते हैं।

BGTaskScheduler — आधुनिक दृष्टिकोण

iOS 13 से, BGTaskScheduler ने पुराने performFetch और beginBackgroundTask को बदल दिया। एप्लिकेशन एक पहचानकर्ता और न्यूनतम अंतराल के साथ कार्य पंजीकृत करता है, और सिस्टम इष्टतम निष्पादन समय निर्धारित करता है। कार्य दो प्रकारों में विभाजित हैं: BGProcessingTask (लंबे, 10+ मिनट) और BGAppRefreshTask (छोटे, 30 सेकंड तक)।

निष्पादन समय सीमाएँ

iOS बैकग्राउंड कार्य निष्पादन के लिए सीमित समय आवंटित करता है — BGAppRefreshTask के लिए 30 सेकंड तक और BGProcessingTask के लिए 10 मिनट तक। सीमा पार होने पर, सिस्टम जबरन कार्य समाप्त कर देता है। डेवलपर को मध्यवर्ती परिणामों को सहेजने के लिए expiration handler को कॉल करना चाहिए।

कोड उदाहरण: Android WorkManager

आइए WorkManager का उपयोग करके Android पर बैकग्राउंड निष्पादन के व्यावहारिक कार्यान्वयन को देखें। नेटवर्क स्थिति जागरूकता के साथ हर 8 घंटे में डेटा सिंक्रोनाइज़ेशन का उदाहरण। WorkManager डिवाइस रीबूट के बाद भी कार्य निष्पादन की गारंटी देता है।

kotlin
class SyncWorker(context: Context, params: WorkerParameters) : Worker(context, params) {
    override fun doWork(): Result {
        return try {
            syncDataToServer()
            Log.d("Sync", "डेटा सिंक्रोनाइज़ हो गया")
            Result.success()
        } catch (e: Exception) {
            Result.retry()
        }
    }
}

// हर 8 घंटे में आवधिक कार्य चलाएँ
val constraints = Constraints.Builder()
    .setRequiredNetworkType(NetworkType.CONNECTED)
    .setRequiresCharging(false)
    .build()

val syncRequest = PeriodicWorkRequestBuilder<SyncWorker>(
    8, TimeUnit.HOURS
).setConstraints(constraints).build()

WorkManager.getInstance(context).enqueue(syncRequest)

सूचना के साथ Foreground Service

उपयोगकर्ता को दिखाई देने वाले लंबे संचालन के लिए, Foreground Service का उपयोग करें। सूचना में प्रगति के साथ फ़ाइल डाउनलोड का उदाहरण। सेवा एक सूचना के साथ startForeground() कॉल करती है जिसे हटाया नहीं जा सकता। डाउनलोड पूरा होने पर — stopForeground(STOP_FOREGROUND_REMOVE)।

kotlin
class DownloadService : Service() {
    override fun onStartCommand(intent: Intent?, flags: Int, id: Int): Int {
        startForeground(NOTIFICATION_ID, createNotification())
        downloadFile()
        stopForeground(STOP_FOREGROUND_REMOVE)
        stopSelf()
        return START_NOT_STICKY
    }
    private fun createNotification(): Notification {
        return NotificationCompat.Builder(this, CHANNEL_ID)
            .setContentTitle("फ़ाइल डाउनलोड करें")
            .setSmallIcon(android.R.drawable.ic_download)
            .build()
    }
}

कोड उदाहरण: iOS BGTaskScheduler

iOS पर, बैकग्राउंड निष्पादन BGTaskScheduler के माध्यम से कॉन्फ़िगर किया जाता है। कंटेंट अद्यतन कार्य को पंजीकृत और निष्पादित करने का उदाहरण। एप्लिकेशन को Info.plist में कार्य पहचानकर्ता पंजीकृत करना होगा और जब कार्य शेड्यूल किया जाना चाहिए तब submit कॉल करना होगा।

swift
import BackgroundTasks

func registerBackgroundTask() {
    BGTaskScheduler.shared.register(
        forTaskWithIdentifier: "com.app.refresh",
        using: nil
    ) { task in
        self.handleAppRefresh(task: task as! BGAppRefreshTask)
    }
}

func scheduleAppRefresh() {
    let request = BGAppRefreshTaskRequest(
        identifier: "com.app.refresh"
    )
    request.earliestBeginDate = Date(timeIntervalSinceNow: 15 * 60)
    try? BGTaskScheduler.shared.submit(request)
}

func handleAppRefresh(task: BGAppRefreshTask) {
    scheduleAppRefresh()
    task.expirationHandler = {
        // मध्यवर्ती डेटा सहेजें
        cacheCurrentState()
    }
    fetchLatestData {
        task.setTaskCompleted(success: true)
    }
}

Background Processing Task

लंबे संचालन (कैश सफाई, डेटा प्रसंस्करण) के लिए, BGProcessingTask का उपयोग करें। सिस्टम निष्पादन के लिए 10 मिनट तक देता है। केवल तब चलता है जब डिवाइस चार्ज हो रहा हो और Wi-Fi से जुड़ा हो। Info.plist में एक अलग पहचानकर्ता और register(forTaskWithIdentifier:) के माध्यम से पंजीकरण की आवश्यकता है।

swift
func scheduleProcessing() {
    let request = BGProcessingTaskRequest(
        identifier: "com.app.cleanup"
    )
    request.requiresExternalPower = true
    request.requiresNetworkConnectivity = true
    request.earliestBeginDate = Date(timeIntervalSinceNow: 24 * 60 * 60)
    try? BGTaskScheduler.shared.submit(request)
}

Android और iOS दृष्टिकोणों की तुलना

Android और iOS बैकग्राउंड निष्पादन के दर्शन में मौलिक रूप से भिन्न हैं। Android अधिक नियंत्रण के साथ लचीले उपकरण प्रदान करता है लेकिन डेवलपर से सही API चुनने की आवश्यकता होती है। iOS क्षमताओं को सीमित करता है लेकिन उपयोगकर्ता के लिए स्थिर प्रदर्शन और बैटरी जीवन की गारंटी देता है।

मानदंडAndroidiOS
अनुशंसित APIWorkManagerBGTaskScheduler
अधिकतम कार्य समयअसीमित (Foreground Service)30 से / 10 मि (processing)
आवधिक कार्यहाँ, PeriodicWorkRequest के माध्यम सेहाँ, BGAppRefreshTask के माध्यम से
निष्पादन गारंटीहाँ, रीबूट के बाद भीनहीं — सिस्टम तय करता है कब
बैकग्राउंड नेटवर्क पहुँचDoze मोड द्वारा सीमितbackground config के साथ URLSession के माध्यम से
बैकग्राउंड जियोलोकेशनForeground Service + अनुमतिBackground Mode location + NSLocation
बैकग्राउंड ऑडियोमीडिया सूचना के साथ Foreground ServiceBackground Mode audio + AVAudioSession

Android WorkManager कब चुनें

WorkManager उन कार्यों के लिए इष्टतम है जो एप्लिकेशन की स्थिति की परवाह किए बिना पूरे होने चाहिए: डेटा सिंक्रोनाइज़ेशन, एनालिटिक्स भेजना, कतार प्रसंस्करण। API गारंटी देता है डिवाइस बंद होने के बाद भी निष्पादन — कार्य बूट के बाद पुनर्निर्धारित होता है।

iOS BGTaskScheduler कब चुनें

BGTaskScheduler उन कार्यों के लिए उपयुक्त है जिन्हें सिस्टम किसी भी सुविधाजनक समय पर कर सकता है: नई सामग्री डाउनलोड करना, विजेट अपडेट करना, कैश साफ करना। उपयुक्त नहीं तत्काल संचालन के लिए — सिस्टम कार्य में देरी करता है यदि डिवाइस Doze में है या बैटरी कम है।

अक्सर पूछे जाने वाले प्रश्न

Background Execution और Background Modes में क्या अंतर है?

Background Execution एक सामान्य अवधारणा है जो बैकग्राउंड में चलने वाले किसी भी कोड का वर्णन करती है। Background Modes एक विशिष्ट iOS तंत्र है जो एप्लिकेशन को कुछ प्रकार के बैकग्राउंड संचालन करने की अनुमति देता है: ऑडियो, जियोलोकेशन, VoIP, fetch। Android Foreground Service प्रकारों के माध्यम से समान दृष्टिकोण का उपयोग करता है।

मेरा एप्लिकेशन बैकग्राउंड में 30 सेकंड के बाद क्यों समाप्त हो जाता है?

iOS पर, यह BGAppRefreshTask के लिए मानक सीमा है। सीमा पार होने पर सिस्टम जबरन कार्य समाप्त कर देता है। Android पर, समान स्थिति तब होती है जब एप्लिकेशन WorkManager या Foreground Service का उपयोग नहीं करता — एक सामान्य Service बैकग्राउंड में जाने पर सिस्टम द्वारा समाप्त कर दी जाती है।

दोनों प्लेटफ़ॉर्म पर कार्य निष्पादन कैसे सुनिश्चित करें?

Android पर, WorkManager का उपयोग करें — यह रीबूट के बाद भी निष्पादन की गारंटी देता है। iOS पर, निष्पादन की गारंटी नहीं दी जा सकती — सिस्टम तय करता है कि कार्य कब चलाना है। निष्पादन सुनिश्चित करने का एकमात्र तरीका उपयोगकर्ता के लिए दृश्य संकेतक के साथ Background Modes (audio, location) का उपयोग करना है।

कैसे जाँचें कि बैकग्राउंड निष्पादन की अनुमति है या नहीं?

iOS पर, UIApplication.shared.backgroundRefreshStatus कॉल करें — स्थिति .available, .denied या .restricted। Android पर, बैटरी अनुकूलन छूट की जाँच के लिए PowerManager.isIgnoringBatteryOptimizations() का उपयोग करें। WorkManager के लिए जाँच की आवश्यकता नहीं है — API स्वयं सिस्टम प्रतिबंधों को संभालता है।

बैकग्राउंड निष्पादन के विकल्प क्या हैं?

Push सूचनाएँ बैकग्राउंड कोड के बिना क्रियाएँ ट्रिगर करने का प्राथमिक तंत्र हैं। iOS पर, VoIP के लिए PushKit और डेटा अद्यतन के लिए Silent Push उपलब्ध हैं। Android पर — High Priority FCM और Notification Trampoline। Foreground Service के माध्यम से WebSockets रीयल-टाइम एप्लिकेशन के लिए एक विकल्प है।

सारांश

  • Background Execution — एप्लिकेशन के मिनिमाइज़ होने पर कोड चलाने का तंत्र, सिंक्रोनाइज़ेशन, डाउनलोड और सूचनाओं के लिए महत्वपूर्ण।
  • Android WorkManager (गारंटीकृत निष्पादन), Foreground Service (लंबे दृश्य कार्य) और Doze mode प्रतिबंध प्रदान करता है।
  • iOS BGTaskScheduler (शेड्यूलिंग), Background App Refresh (आवधिक अद्यतन) और मीडिया और जियोलोकेशन के लिए Background Modes का उपयोग करता है।
  • ऊर्जा खपत — सीमाओं का मुख्य कारण: अनुकूलित बैकग्राउंड प्रक्रियाएँ डिवाइस की बैटरी लाइफ को 20–30% कम करती हैं।
  • गोपनीयता — दोनों प्लेटफ़ॉर्म को स्पष्ट अनुमतियों (Android POST_NOTIFICATIONS, iOS Background Modes) और उपयोगकर्ता सूचना की आवश्यकता होती है।
  • WorkManager एकमात्र API है जो डिवाइस रीबूट के बाद निष्पादन की गारंटी देता है; BGTaskScheduler सिस्टम निर्णयों पर निर्भर करता है।
  • स्टेटस बार में उपयोगकर्ता को दिखाई देने वाले लंबे संचालन के लिए Android पर Foreground Service और iOS पर Background Modes का उपयोग करें।

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें