موبائل ڈیولپمنٹ میں پس منظر کے کام: یہ کیا ہیں، اقسام اور کیسے کام کرتے ہیں

مصنف: IT Sectr اشاعت: 2026-03-22 مطالعے کا وقت: 10 منٹ

ڈیٹا لوڈ کرنا، مواد کی مطابقت پذیری، تجزیات بھیجنا — بہت سے کاموں میں صارف کی فعال شرکت کی ضرورت نہیں ہوتی۔ تاہم، موبائل آلات بیٹری بچانے اور کارکردگی برقرار رکھنے کے لیے پس منظر کے کام کو محدود کرتے ہیں۔ پس منظر کے کام (background tasks) وہ میکانزم ہیں جو ایپ کو کوڈ چلانے کی اجازت دیتے ہیں جب صارف اسے نہیں دیکھ رہا ہو۔ اس مضمون میں ہم WorkManager، BGTaskScheduler، Foreground Service اور Doze Mode کی خصوصیات کا جائزہ لیں گے۔ مزید تفصیلات کے لیے سرکاری WorkManager دستاویزات دیکھیں۔

اہم نکات

  • WorkManager — Android پر پس منظر کے کاموں کا معیار (Jetpack)
  • BGTaskScheduler — iOS پر پس منظر کے کاموں کے لیے جدید API (iOS 13+)
  • Foreground Service — ان کاموں کے لیے جو صارف دیکھ سکتا ہے (موسیقی، GPS)
  • Doze Mode اور App Standby — توانائی بچانے کے موڈ جو پس منظر کے کام کو محدود کرتے ہیں
  • دونوں پلیٹ فارمز پر، سسٹم پس منظر میں عملدرآمد کو محدود کرتا ہے؛ ڈیولپر کو صحیح API کا انتخاب کرنا چاہیے
  • JobScheduler — Android 5+ کے لیے پرانا API؛ WorkManager پر منتقلی کی سفارش کی جاتی ہے

پس منظر کے کام کیا ہیں؟

پس منظر کا کام کوئی بھی کوڈ ہے جو اس وقت چلتا ہے جب ایپ پیش منظر (فعال اسکرین) میں نہ ہو۔ اس میں شامل ہو سکتا ہے: سرور کے ساتھ متواتر ڈیٹا کی مطابقت پذیری، بڑی فائلیں ڈاؤن لوڈ کرنا، پش اطلاعات پر کارروائی کرنا، جغرافیائی محل وقوع کی ٹریکنگ، ویجٹ کو اپ ڈیٹ کرنا۔ ہر پلیٹ فارم کی پس منظر کے کام پر اپنی پابندیاں ہیں: iOS زیادہ سخت ہے (10–30 منٹ پس منظر کا وقت)، Android زیادہ فراخدل ہے لیکن ورژن 9 سے قواعد سخت کر دیے ہیں۔

پس منظر کے کاموں کا فن تعمیر تین سطحوں پر بنایا گیا ہے: (1) فوری کام — ابھی انجام پاتے ہیں (Foreground Service)؛ (2) مؤخر کام — مناسب حالات میں انجام پاتے ہیں (WorkManager، BGTaskScheduler)؛ (3) متواتر کام — مقررہ وقفے سے دہرائے جاتے ہیں۔ صحیح سطح کا انتخاب اس بات کا تعین کرتا ہے کہ آیا کام وقت پر مکمل ہوگا اور کیا اس سے ایپ اسٹور کے ذریعے مسترد ہونے کا سبب بنے گا۔

دونوں پلیٹ فارمز پر، Google/Apple پس منظر میں براہ راست تھریڈز کے انتظام کرنے کے بجائے اعلانیہ APIs استعمال کرنے کی سختی سے سفارش کرتے ہیں۔ Android پر WorkManager اور iOS پر BGTaskScheduler سسٹم کو ایپس کے درمیان پس منظر کے کام کو بہترین طریقے سے تقسیم کرنے، توانائی بچانے کے لیے کاموں کو گروپ کرنے کی اجازت دیتے ہیں۔ IT Sectr میں، ہم ہمیشہ اپ ڈیٹس کی تعدد اور فوری ضروریات کا تجزیہ کرکے پس منظر کے فن تعمیر کا ڈیزائن شروع کرتے ہیں۔

iOS پر پس منظر کے کام (Background Fetch، BGTaskScheduler)

iOS پس منظر کے کام کے لیے کئی میکانزم فراہم کرتا ہے۔ Background Fetch — سسٹم کے طے کردہ وقفے سے متواتر مواد کی اپ ڈیٹ (ڈیولپر کے ذریعے نہیں)۔ ایپ کو نیا ڈیٹا ڈاؤن لوڈ کرنے کے لیے ~30 سیکنڈ کی ونڈو ملتی ہے۔ Background Fetch Capabilities → Background Modes → Background Fetch کے ذریعے فعال کیا جاتا ہے اور AppDelegate میں لاگو کیا جاتا ہے: application(_:performFetchWithCompletionHandler:)۔

BGTaskScheduler iOS 13+ کے لیے جدید API ہے، جو Background Fetch کی جگہ لیتا ہے۔ ڈیولپر ایک شناخت کنندہ کے ساتھ کام رجسٹر کرتا ہے، اور سسٹم اسے مناسب حالات میں چلاتا ہے۔ BGAppRefreshTask — مختصر مواد کی اپ ڈیٹ کے لیے؛ BGProcessingTask — لمبے کاموں کے لیے (کیش صاف کرنا، ڈیٹا بیس کی مطابقت پذیری)۔ کام ایپ لانچ ہونے پر رجسٹر کیے جاتے ہیں، اور سسٹم بیٹری کی حالت، نیٹ ورک اور صارف کی سرگرمی کو مدنظر رکھتے ہوئے ان کے عملدرآمد کا شیڈول بناتا ہے۔

Background Modes — مخصوص منظرناموں کے لیے پس منظر کے کام کی اجازت دینے والے موڈز کی فہرست: Audio (پس منظر میں چلانا)، Location (GPS ٹریکنگ)، VoIP (PushKit کے ذریعے کالز)، BLE (بلوٹوتھ آلات سے کنکشن)، Processing (BGTaskScheduler کے ذریعے لمبے کام)۔ ہر موڈ کو App Store کے جائزے میں جواز پیش کرنے کی ضرورت ہے۔ حقیقی ضرورت کے بغیر موڈز کا استعمال کرنا ایپ کو مسترد کرنے کی ایک عام وجہ ہے۔

Significant Location Change — ان ایپس کے لیے میکانزم جنہیں مسلسل جغرافیائی محل وقوع کی ضرورت نہیں ہے لیکن صارف کی اہم نقل و حرکت (500 میٹر سے زیادہ) کے بارے میں جاننا ضروری ہے۔ سیلولر ٹاور تبدیل ہونے پر سسٹم ایپ کو جگاتا ہے۔ یہ میکانزم مسلسل GPS ٹریکنگ کے مقابلے میں نمایاں طور پر بیٹری بچاتا ہے۔

Android پر پس منظر کے کام (WorkManager، JobScheduler، Foreground Service)

Android پس منظر کے کاموں کے لیے APIs کا سب سے امیر سیٹ پیش کرتا ہے، لیکن ورژن 8.0 (API 26) سے قواعد سخت ہو گئے ہیں۔ WorkManager تمام اقسام کے پس منظر کے کاموں کے لیے Google کی تجویز کردہ حل ہے۔ WorkManager ڈیوائس ریبوٹ کے بعد بھی کام کے عملدرآمد کی ضمانت دیتا ہے (BootReceiver کے ذریعے) اور کام کی زنجیریں، قابل مشاہدہ LiveData/Flow اور API 14 تک پسماندہ مطابقت کی حمایت کرتا ہے۔

WorkManager Worker استعمال کرتا ہے — doWork() طریقہ کار کے ساتھ ایک بنیادی کلاس۔ Constraints عملدرآمد کی شرائط طے کرتا ہے: NetworkType.CONNECTED، BatteryNotLow، StorageNotLow۔ PeriodicWorkRequest — کم از کم 15 منٹ کے وقفے کے ساتھ متواتر کاموں کے لیے۔ WorkManager خود بخود Doze Mode اور App Standby کے مطابق ڈھل جاتا ہے، کاموں کو دیکھ بھال کی ونڈوز میں گروپ کرتا ہے۔ ایک سادہ Worker کی مثال:

kotlin
class SyncWorker(
    context: Context,
    params: WorkerParameters
) : CoroutineWorker(context, params) {

    override suspend fun doWork(): Result {
        return try {
            val repository =
                Injection.provideRepository(applicationContext)
            repository.syncData()
            Result.success()
        } catch (e: Exception) {
            Result.retry()
        }
    }
}

// Запланировать задачу
val constraints = Constraints.Builder()
    .setRequiredNetworkType(NetworkType.CONNECTED)
    .build()

val syncRequest = OneTimeWorkRequestBuilder<SyncWorker>()
    .setConstraints(constraints)
    .build()

WorkManager.getInstance(context)
    .enqueue(syncRequest)

JobScheduler — ایک پرانا API (Android 5+، API 21)۔ یہ مخصوص شرائط (نیٹ ورک، چارجنگ، بیکار) کے ساتھ کاموں کو شیڈول کرتا ہے۔ حد: یہ ڈیوائس ریبوٹ کی حمایت نہیں کرتا (BootReceiver درکار ہے) اور اس کی کوئی قابل مشاہدہ حالت نہیں ہے۔ JobScheduler پرانے منصوبوں میں سادہ کاموں کے لیے موزوں ہے؛ نئے منصوبوں کے لیے WorkManager استعمال کریں۔

Foreground Service — ایک سروس جسے صارف ایک مستقل اطلاع (ongoing notification) کے ذریعے دیکھتا ہے۔ اس کے لیے استعمال کیا جاتا ہے: موسیقی چلانا، GPS ٹریکنگ، بڑی فائلیں ڈاؤن لوڈ کرنا۔ Foreground Service کو اعلی ترجیح حاصل ہے — میموری کم ہونے پر سسٹم اسے ختم نہیں کرے گا۔ Android 13 سے شروع کرتے ہوئے، کچھ اقسام کے لیے FOREGROUND_SERVICE_SPECIAL_USE کی اجازت درکار ہے۔ ایک متبادل ForegroundServiceOption کے ساتھ WorkManager ہے (لمبے کام)۔

AlarmManager — ان کاموں کے لیے جو عین وقت پر چلنے چاہئیں (الارم، یاد دہانی)۔ AlarmManager ڈیوائس کو Doze Mode سے جاگ سکتا ہے (setAlarmClock)۔ زیادہ توانائی کی کھپت کی وجہ سے باقاعدہ مطابقت پذیری کے لیے سفارش نہیں کی جاتی۔ متواتر کاموں کے لیے WorkManager استعمال کریں، اور AlarmManager صرف اس وقت جب عین وقت اہم ہو۔

منظرنامہ iOS Android
متواتر مواد کی اپ ڈیٹBGAppRefreshTask (BGTaskScheduler)WorkManager (PeriodicWorkRequest)
لمبا پس منظر کا کامBGProcessingTaskWorkManager + ForegroundService
آڈیو چلاناBackground Audio ModeForeground Service
GPS ٹریکنگSignificant Location Change / Background LocationForeground Service + FusedLocationProvider
VoIP / کالزPushKit + CallKitConnectionService + Foreground Service
عین وقت (الارم)UNNotificationRequest (calendar)AlarmManager
پش پروسیسنگ (پس منظر)Notification Service ExtensionFirebaseMessagingService (onMessageReceived)

Doze Mode اور App Standby

Doze Mode Android میں توانائی بچانے کا ایک موڈ ہے جو پس منظر کے کاموں کے عملدرآمد کو متاثر کرتا ہے۔ Android 6.0 (API 23) میں متعارف کرایا گیا۔ جب ڈیوائس چارج نہیں ہو رہی، اسکرین بند ہے اور ڈیوائس ساکن ہے، Doze Mode نیٹ ورک کی درخواستوں کو روکتا ہے، JobScheduler اور WakeLock کو مؤخر کرتا ہے۔ وقتاً فوقتاً Doze دیکھ بھال کی ونڈوز کھولتا ہے — مختصر وقفے جب ایپس مؤخر کاموں کو انجام دے سکتی ہیں۔ Android 7.0 (API 24) سے، Doze اسکرین بند ہونے پر فعال ہوتا ہے، نہ کہ صرف مکمل ساکن ہونے پر۔

App Standby — ایک موڈ جس میں غیر استعمال شدہ ایپس کو اسٹینڈ بائی میں ڈال دیا جاتا ہے۔ اگر کسی ایپ میں فعال اطلاع نہیں ہے اور وہ کئی دنوں سے نہیں کھولی گئی، تو اسے Standby Bucket میں رکھا جاتا ہے: فعال (active)، working، frequent، rare۔ ایپ جتنی کم استعمال ہوگی، پابندیاں اتنی ہی سخت ہوں گی: نیٹ ورک کی درخواستیں مؤخر کی جاتی ہیں، مطابقت پذیری مسدود کر دی جاتی ہے، JobScheduler نہیں چلتا۔

WakeLock — ایک میکانزم جو ڈیوائس کو جاگتا رکھتا ہے (اسے سونے سے روکتا ہے)۔ اہم کارروائیوں کو مکمل کرنے کے لیے استعمال کیا جاتا ہے۔ WakeLock کو کام مکمل ہونے کے بعد جاری کرنا ضروری ہے (release)، ورنہ بیٹری چند گھنٹوں میں ختم ہو جائے گی۔ WakeLock Doze Mode میں کام نہیں کرتا — سسٹم اسے نظر انداز کرتا ہے۔ Android 8+ پر WakeLock کے ساتھ کام کرنے کے لیے WAKE_LOCK کی اجازت اور مناسب زندگی کے چکر کے انتظام کی ضرورت ہے۔

IT Sectr میں، ہم ڈیزائن کے مرحلے میں Doze Mode اور App Standby کو مدنظر رکھتے ہیں۔ WorkManager خود بخود ان موڈز کو سنبھالتا ہے، لیکن Foreground Service کے لیے Doze میں منتقلی کی صحیح ہینڈلنگ کی منصوبہ بندی کرنی ہوگی۔ سفارش کی جاتی ہے کہ پس منظر کے کام کو حقیقی آلات پر توانائی بچانے کے موڈ کے ساتھ اور طویل بیکار مدت کے بعد آزمایا جائے۔

عملی مشورے

پس منظر کے کاموں کو ڈیزائن کرتے وقت، ان مشوروں پر عمل کریں۔ 1. نئے Android منصوبوں کے لیے ہمیشہ WorkManager استعمال کریں۔ یہ مطابقت کے مسائل، Doze Mode اور ڈیوائس ریبوٹ کو حل کرتا ہے۔ 2. iOS پر، iOS 13+ کے لیے Background Fetch کے بجائے BGTaskScheduler کو ترجیح دیں۔ 3. Foreground Service صرف اس وقت استعمال کریں جب کام کو واقعی ایک ظاہری اطلاع کی ضرورت ہو۔ 4. WakeLock کا غلط استعمال نہ کریں — یہ بیٹری ختم کرتا ہے اور ایپ کو مسترد کرنے کا سبب بن سکتا ہے۔ 5. Doze Mode میں پس منظر کے کاموں کو آزمائیں: adb shell dumpsys deviceidle force-idle۔ 6. ہمیشہ لاگنگ اور تجزیات کے ذریعے کام کی تکمیل کی تصدیق کریں۔ 7. حدوں کو یاد رکھیں: iOS Background Fetch کے لیے ~30 سیکنڈ اور BGProcessingTask کے لیے ~چند منٹ دیتا ہے۔ Android WorkManager عین عملدرآمد کے وقت کی ضمانت نہیں دیتا۔

اکثر پوچھے گئے سوالات

Android پر Background Service اور Foreground Service میں کیا فرق ہے؟

Background Service بغیر ظاہری اطلاع کے چلتا ہے اور سسٹم کسی بھی وقت اسے ختم کر سکتا ہے۔ Foreground Service کو ایک مستقل اطلاع (ongoing notification) دکھانی ہوتی ہے اور اس کی ترجیح زیادہ ہوتی ہے۔ Foreground Service موسیقی چلانے اور GPS ٹریکنگ کے لیے استعمال ہوتا ہے۔

Doze Mode کیا ہے اور یہ پس منظر کے کاموں کو کیسے متاثر کرتا ہے؟

Doze Mode Android کا توانائی بچانے کا موڈ ہے جو ڈیوائس کے استعمال میں نہ ہونے پر نیٹ ورک تک رسائی کو غیر فعال کر دیتا ہے اور JobScheduler/WakeLock کو مؤخر کر دیتا ہے۔ WorkManager Doze Mode کے مطابق خود بخود ڈھل جاتا ہے۔

iOS پر پس منظر کا کام کیسے چلایا جائے؟

iOS پر، پس منظر کے کام Background Fetch (متواتر اپ ڈیٹ)، BGTaskScheduler (مؤخر کام) یا Background Modes (آڈیو، VoIP، BLE، مقام) کے ذریعے چلائے جاتے ہیں۔ BGTaskScheduler iOS 13+ کے لیے جدید API ہے جو Background Fetch کی جگہ لیتا ہے۔

WorkManager یا JobScheduler: کس کا انتخاب کریں؟

WorkManager Android پر تمام پس منظر کے کاموں کے لیے Google کی تجویز کردہ حل ہے۔ JobScheduler محدود صلاحیتوں والا ایک پرانا API ہے۔ WorkManager کام کی زنجیریں، قابل مشاہدہ LiveData/Flow اور API 14 تک پسماندہ مطابقت کی حمایت کرتا ہے۔

App Standby کیا ہے؟

App Standby Android کا ایک موڈ ہے جس میں غیر استعمال شدہ ایپس کو اسٹینڈ بائی حالت میں ڈال دیا جاتا ہے: نیٹ ورک کی درخواستیں مؤخر کی جاتی ہیں، مطابقت پذیری روک دی جاتی ہے۔ اگر کوئی ایپ کئی دنوں تک استعمال نہ ہو، تو Android اسے Standby Bucket (active، working، frequent، rare) میں رکھتا ہے۔

خلاصہ

  • WorkManager — Android پر پس منظر کے کاموں کے لیے عالمگیر حل؛ Doze Mode کے مطابق خود بخود ڈھل جاتا ہے
  • BGTaskScheduler — iOS 13+ کے لیے جدید API (BGAppRefreshTask، BGProcessingTask)
  • Foreground Service — مستقل اطلاع کے ساتھ صارف کو دکھائی دینے والے کاموں کے لیے
  • Doze Mode اور App Standby — غور کرنا لازمی ہے؛ WorkManager خود بخود سنبھالتا ہے
  • JobScheduler اور AlarmManager — پرانے منصوبوں کے لیے؛ نئے منصوبوں میں WorkManager استعمال کریں
  • iOS پس منظر کے کام کو Android سے زیادہ سختی سے محدود کرتا ہے — ڈیزائن کرتے وقت اسے ذہن میں رکھیں
  • ہمیشہ پس منظر کے کاموں کو توانائی بچانے کے موڈ میں حقیقی آلات پر آزمائیں

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں