Foreground Service: یہ کیا ہے، اقسام اور کام کا طریقہ کار

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

Foreground Service ایک Android سروس ہے جو صارف کو دکھائی دینے والے لازمی اطلاع کے ساتھ اسٹیٹس بار میں طویل مدتی آپریشنز انجام دیتی ہے۔ Background Service کے برعکس، جسے وسائل کی کمی پر نظام روک سکتا ہے، Foreground Service اعلی ترجیح حاصل کرتا ہے اور محدود میموری کے حالات میں بھی کام جاری رکھتا ہے۔ Android Developers, 2025 دستاویزات کے مطابق، Foreground Service Android 12 اور اس سے نئے ورژن والے آلات پر طویل مدتی کاموں کو انجام دینے کا واحد قابل اعتماد طریقہ ہے۔

اہم نکات

  • Foreground Service — لازمی اطلاع والی سروس جو اسٹیٹس بار میں صارف کو دکھائی دیتی ہے
  • Notification — لازمی عنصر، جس کے بغیر نظام سروس شروع نہیں ہونے دے گا
  • ترجیح — Background Service کے برعکس، Foreground Service میموری کم ہونے پر نہیں رکتا
  • Android 12+ — foreground service کو background سے شروع کرنے پر پابندیاں لگائی گئیں
  • Foreground Service Type — ہدف API 34+ کے لیے سروس کی قسم کا لازمی اعلان

Foreground Service کیا ہے

Foreground Service ایک Android جزو ہے جو ان کاموں کو انجام دینے کے لیے ڈیزائن کیا گیا ہے جن کے بارے میں صارف جانتا ہے اور دیکھ سکتا ہے۔ یہ نوٹیفکیشن پینل میں ایک مستقل اطلاع دکھاتا ہے جسے سوائپ کرکے نہیں ہٹایا جا سکتا — یہ اس وقت تک فعال رہتا ہے جب تک سروس چل رہی ہے۔ یہ ایک پس منظر کی سروس سے بنیادی فرق ہے، جو صارف کی معلومات کے بغیر کام کرتی ہے۔

Android نظام Foreground Service کو ایک اہم عمل سمجھتا ہے۔ جب RAM کم ہوتی ہے، پلیٹ فارم پہلے Background Services کو ختم کرتا ہے، پھر کیشڈ Activities کو، اور صرف غیر معمولی صورتوں میں — Foreground Service کو۔ OOM Killer ایسی سروس کو ADJ سطح 2 تفویض کرتا ہے، جو عملی طور پر اسے جبری طور پر ختم ہونے سے بچاتا ہے۔

Foreground Service شروع کرنے کے لیے، ڈویلپر کو سروس بنانے کے بعد چند سیکنڈ کے اندر startForeground() طریقہ کار کو کال کرنا ہوگا، ورنہ نظام ایک ForegroundServiceDidNotStartInTimeException استثنا پھینکے گا۔ یہ پلیٹ فارم کی ایک سخت ضرورت ہے جو غیر اعلانیہ پس منظر کے کاموں کو روکنے کے لیے متعارف کرائی گئی تھی۔

تاریخ

Foreground Service میکانزم Android 1.0 میں پہلے SDK کے ساتھ متعارف کرایا گیا تھا، لیکن لازمی اطلاع Android 9 (API 28) میں ظاہر ہوئی۔ اس سے پہلے، ایک سروس صارف کو دکھائی دینے والے اشارے کے بغیر پیش منظر میں چل سکتی تھی۔ Android 9 سے شروع کرکے، Google نے ضروریات کو سخت کیا: startForeground کال کرنے والی کسی بھی ایپلیکیشن کو سروس شروع ہونے کے 5 سیکنڈ کے اندر ایک اطلاع فراہم کرنی ہوگی۔

Android 12 (API 31) میں Foreground Service کو پس منظر کے سیاق و سباق سے شروع کرنے پر پابندیاں لگائی گئیں — اب بہت سے منظرناموں کے لیے FOREGROUND_SERVICE_SPECIAL_USE اجازت درکار ہے۔ Android 14 (API 34) نے مینی فیسٹ میں foregroundServiceType کے لازمی اعلان کو متعارف کرایا، جس سے سروس کے فن تعمیر کو زیادہ شفاف اور قابل قیاس بنایا گیا۔

Foreground Service کیسے کام کرتا ہے

Foreground Service کا کام کرنے کا طریقہ کار تین اہم مراحل پر مبنی ہے: سروس بنانا، اطلاع کو منسلک کرنا اور کام کو انجام دینا۔ سروس Service کلاس سے وراثت پاتی ہے اور onStartCommand() طریقہ کار کو اوور رائڈ کرتی ہے، جس میں ایک شناخت کنندہ اور Notification آبجیکٹ کے ساتھ startForeground() کال کیا جاتا ہے۔

startForeground() کال کرنے کے بعد، نظام سروس کے عمل کو اعلی بقا کی ترجیح کے ساتھ پیش منظر کے گروپ میں منتقل کرتا ہے۔ اس کا مطلب ہے کہ Android RAM لوڈ سے قطع نظر عمل کو چلاتا رکھنے کی کوشش کرے گا۔ Foreground Service کو عام حالات میں نظام کے ذریعے نہیں روکا جا سکتا — صرف صارف کی طرف سے اطلاع ہٹانے پر یا واضح طور پر stopSelf() کال کرنے پر۔

Foreground Service کا لائف سائیکل onCreate()، onStartCommand() اور onDestroy() طریقہ کار کے ذریعے منظم کیا جاتا ہے۔ onStartCommand() میں، ڈویلپر عمل ختم ہونے کے بعد دوبارہ شروع کرنے کی حکمت عملی طے کرتا ہے — START_STICKY مستقل نظام کو وسائل کی بحالی کے بعد سروس کو دوبارہ بنانے پر مجبور کرتا ہے، جبکہ START_NOT_STICKY خودکار دوبارہ شروع ہونے سے روکتا ہے۔

لائف سائیکل اور حالات

Foreground Service شروع ہونے پر، ترتیب وار اقدامات انجام دیے جاتے ہیں: startService() کال، onCreate() میں Service آبجیکٹ بنانا، onStartCommand() میں Intent پروسیسنگ اور Notification آبجیکٹ کے ساتھ startForeground() کال۔ اگر سروس پہلے سے چل رہی ہے اور نیا Intent آتا ہے، تو صرف onStartCommand() دوبارہ کال کیا جاتا ہے — onCreate() سروس کی زندگی میں صرف ایک بار انجام دیا جاتا ہے۔

Foreground Service کو روکنا REMOVE_NOTIFICATION فلیگ کے ساتھ stopForeground() کے ذریعے ہوتا ہے، جو اسٹیٹس بار سے اطلاع چھپاتا ہے۔ اطلاع ہٹانے کے فوراً بعد، نظام سروس کو پیش منظر نہیں سمجھ سکتا اور اس کی ترجیح Background Service تک کم کر سکتا ہے، جس سے عمل ختم ہونے کا خطرہ ہوتا ہے۔

PowerManager کے ساتھ تعامل

PowerManager Foreground Service کے کام میں ایک اہم کردار ادا کرتا ہے، کیونکہ Android کے پاور سیونگ موڈز (Doze، App Standby) کاموں کو انجام دینے کی اس کی صلاحیت کو محدود کر سکتے ہیں۔ پیش منظر کی حالت میں ہونے پر بھی، سروس بیٹری پالیسیوں کے تابع ہے — نیٹ ورک کی درخواستوں میں تاخیر ہو سکتی ہے اور ٹائمر Doze ونڈوز کے ساتھ مطابقت پذیر ہو سکتے ہیں۔ تاخیر برداشت کرنے والے طویل مدتی کاموں کے لیے، WorkManager کے ساتھ مل کر Foreground Service استعمال کرنے کی سفارش کی جاتی ہے۔

Foreground Service کی اہم اقسام

Android 14 (API 34) سے شروع کرکے، Google نے مینی فیسٹ میں Foreground Service کی قسم کے لازمی اعلان کو متعارف کرایا۔ ہر قسم ایک مجاز استعمال کے منظر نامے کی وضاحت کرتی ہے — نظام اعلان کردہ قسم اور سروس کے اصل رویے کے درمیان مطابقت کی جانچ کرتا ہے۔ کل 9 اقسام ہیں، لیکن سب سے زیادہ استعمال ہونے والی درج ذیل ہیں۔

dataSync

dataSync قسم آلہ اور سرور کے درمیان ڈیٹا کی مطابقت پذیری، فائل کی منتقلی اور بیک اپ کے لیے ڈیزائن کی گئی ہے۔ مثالوں میں کلاؤڈ اسٹوریج میں تصاویر اپ لوڈ کرنا، Firebase کے ساتھ ڈیٹا بیس کی مطابقت پذیری کرنا یا ریموٹ سرور پر لاگز اپ لوڈ کرنا شامل ہیں۔ اس قسم کے لیے android:foregroundServiceType="dataSync" وصف کے ذریعے مینی فیسٹ میں جواز فراہم کرنا لازمی ہے۔

mediaPlayback

mediaPlayback قسم پس منظر میں آڈیو اور ویڈیو چلانے کے لیے استعمال ہوتی ہے — موسیقی پلیئرز، پوڈکاسٹ کلائنٹس، ویڈیو پلیئرز۔ یہ واحد قسم ہے جو صارف کی مداخلت کے بغیر غیر معینہ مدت تک چل سکتی ہے۔ اطلاعی چینل میں اعلی ترجیح ہونی چاہیے اور MediaStyle کے ذریعے پلے بیک کنٹرول بٹن — پلے، پوز، اگلا، پچھلا — دکھانا چاہیے۔

location

location قسم جغرافیائی محل وقوع کی خدمات کے لیے ہے — نیویگیشن ایپس، سرگرمی سے باخبر رہنا، جیو فینسنگ۔ Android 14+ کے لیے FOREGROUND_SERVICE_LOCATION اجازت کا اعلان کرنا اور مینی فیسٹ میں قسم کی وضاحت کرنا ضروری ہے۔ ایپلیکیشن کے پاس رن ٹائم میں ایک فعال مقام کی اجازت ہونی چاہیے، ورنہ نظام سروس شروع کرنے سے انکار کر دے گا۔

قسماجازتاستعمال کی مثال
dataSyncFOREGROUND_SERVICE_DATA_SYNCکلاؤڈ کے ساتھ فائل کی مطابقت پذیری
mediaPlaybackFOREGROUND_SERVICE_MEDIA_PLAYBACKپس منظر میں میوزک پلیئر
locationFOREGROUND_SERVICE_LOCATIONڈرائیونگ کے دوران GPS نیویگیشن
cameraFOREGROUND_SERVICE_CAMERAویڈیو نگرانی کی ایپلیکیشن
connectedDeviceFOREGROUND_SERVICE_CONNECTED_DEVICEBLE آلہ کے ساتھ کام

Foreground Service بمقابلہ Background Service

بنیادی فرق Foreground اور Background Service کے درمیان ایک دکھائی دینے والی اطلاع اور بقا کی ترجیح کی موجودگی ہے۔ Background Service کو میموری کم ہونے پر نظام کسی بھی وقت روک سکتا ہے، جبکہ Foreground Service Android Low Memory Killer میکانزم میں بہتر عمل adj-سطح کی وجہ سے چلتا رہتا ہے۔

Background Service کو اطلاع کی ضرورت نہیں ہوتی اور یہ صارف کی معلومات کے بغیر چل سکتی ہے۔ تاہم، Android 8 (API 26) سے شروع کرکے، Google نے پس منظر کی خدمات کو کافی حد تک محدود کر دیا: پس منظر کے سیاق و سباق سے startService() اب کام نہیں کرتا، اور Context.startForegroundService() کسی بھی سروس کو شروع کرنے کے لیے لازمی ہو گیا جو پیش منظر میں جانے کا ارادہ رکھتی ہے۔ نظام نے پس منظر میں عملدرآمد کی حدود بھی متعارف کرائیں — ایک ٹائمر (فی الحال 10 منٹ) جس کے بعد Background Service کو زبردستی روک دیا جاتا ہے۔

Foreground Service، اس کے برعکس، کی کوئی وقتی حد نہیں ہے۔ سروس گھنٹوں یا دنوں تک چل سکتی ہے — جب تک صارف اسے واضح طور پر بند نہ کرے یا آلہ کو دوبارہ شروع نہ کرے۔ یہ Foreground Service کو ان ایپلیکیشنز کے لیے بہترین انتخاب بناتا ہے جنہیں پس منظر میں مسلسل کام کی ضرورت ہوتی ہے: میوزک پلیئرز، سرگرمی سے باخبر رہنے والے، VoIP کال ایپس۔

تقابلی جدول

پیرامیٹرForeground ServiceBackground Service
اطلاعلازمیضروری نہیں
زندگی کی مدتکوئی حد نہیں10 منٹ تک (API 26+)
نظام کی ترجیحاعلی (ADJ 2)کم (ADJ 8+)
API 26+ آغازstartForegroundService()پس منظر سے ممنوع

Android 12+ میں تقاضے

Android 12 (API 31) سے شروع کرکے، Google نے Foreground Service شروع کرنے پر اہم پابندیاں لگائیں۔ بنیادی تبدیلی زیادہ تر سروس کی اقسام کے لیے پس منظر کے سیاق و سباق سے startForegroundService() کال کرنے پر پابندی ہے۔ مستثنیات صرف اس وقت لاگو ہوتی ہیں جب صارف نے واضح طور پر رضامندی دی ہو (مثال کے طور پر، FOREGROUND_SERVICE_SPECIAL_USE اجازت کے ذریعے) یا جب سروس BOOT_COMPLETED براڈکاسٹ انٹینٹ کے جواب میں شروع کی جائے۔

API 34+ کو ہدف بنانے والی ایپلیکیشن کے مینی فیسٹ میں ہر اعلان کردہ سروس کے لیے ایک foregroundServiceType بلاک ہونا چاہیے۔ مثال کے طور پر، ڈیٹا سنک سروس کے لیے، android:foregroundServiceType="dataSync" بتائیں۔ اگر قسم متعین نہیں ہے، تو نظام سروس کو نااہل سمجھتا ہے اور شروع کرنے کی کوشش پر MissingForegroundServiceTypeException پھینکتا ہے۔ Google Play بھی اقسام کی مطابقت کی جانچ کرتا ہے اور عدم مطابقت کی صورت میں اشاعت مسترد کر سکتا ہے۔

Android 14+ کے لیے اجازتیں

Android 14 (API 34) میں، Foreground Service کی ہر قسم کے لیے ایک علیحدہ اجازت ہے۔ ڈویلپر کو انہیں مینی فیسٹ میں اعلان کرنا چاہیے اور سروس شروع کرنے سے پہلے رن ٹائم پر درخواست کرنی چاہیے۔ dataSync کے لیے FOREGROUND_SERVICE_DATA_SYNC درکار ہے؛ mediaPlayback کے لیے FOREGROUND_SERVICE_MEDIA_PLAYBACK درکار ہے۔ صارف ترتیبات میں اجازت واپس لے سکتا ہے، جو فعال سروس کو روک دے گا۔

Google نے Android 14 میں Foreground Service Notification Timeout میکانزم بھی متعارف کرایا: اگر سروس تخلیق کے 10 سیکنڈ کے اندر startForeground() کال نہیں کرتی، تو نظام ایک استثنا پھینکتا ہے۔ یہ سختی ان ایپلیکیشنز سے نمٹنے کے لیے ہے جو اطلاع کال میں تاخیر کرتی ہیں یا اسے چھوڑ دیتی ہیں، اور پیش منظر کے بہانے Background Service کے طور پر کام کرتی ہیں۔

Foreground Service کے استعمال کے معاملات

Foreground Service ان کاموں کی ایک وسیع رینج میں استعمال ہوتا ہے جنہیں پس منظر میں یقینی عملدرآمد کی ضرورت ہوتی ہے۔ سب سے عام منظرناموں میں میڈیا پلے بیک، جغرافیائی محل وقوع سے باخبر رہنا، ڈیٹا کی مطابقت پذیری اور پردیی آلات کے ساتھ کام شامل ہیں۔ آئیے ان میں سے ہر ایک کو تفصیل سے دیکھتے ہیں۔

میڈیا پلیئرز اور آڈیو سٹریمنگ

ایک کلاسک مثال ایک میوزک پلیئر ہے جو ایپلیکیشن کو چھوٹا کرنے کے بعد بھی پلے بیک جاری رکھتا ہے۔ سروس MediaStyle اطلاع، کنٹرول بٹن کے ساتھ شروع ہوتی ہے اور mediaPlayback قسم استعمال کرتی ہے۔ صارف اسٹیٹس بار میں ٹریک کی معلومات دیکھ سکتا ہے اور ایپلیکیشن کھولے بغیر پلے بیک کو کنٹرول کر سکتا ہے۔

GPS ٹریکرز اور نیویگیشن

نیویگیشن ایپلیکیشنز مسلسل کوآرڈینیٹ سے باخبر رہنے کے لیے location قسم کا Foreground Service استعمال کرتی ہیں۔ سروس موجودہ رفتار، سفر کے وقت اور ٹریکنگ روکنے کے بٹن کے ساتھ ایک اطلاع دکھاتی ہے۔ Foreground Service کے بغیر، نظام چند منٹوں میں پس منظر میں کوآرڈینیٹ وصول کرنا بند کر دے گا، جس سے نیویگیشن ناممکن ہو جائے گی۔

VoIP کالز

صوتی اور ویڈیو کال ایپلیکیشنز — VoIP کلائنٹس — ایک فعال کنکشن برقرار رکھنے کے لیے Foreground Service استعمال کرتی ہیں۔ phoneCall قسم (Android 14 سے) کی سروس اس بات کو یقینی بناتی ہے کہ ایپلیکیشن کو چھوٹا کرنے پر کال منقطع نہ ہو۔ اطلاع کال کی مدت اور مائیکروفون اور اسپیکر کنٹرول دکھاتی ہے۔

  • میڈیا پلیئرز — آڈیو سٹریمنگ، پوڈکاسٹس، پس منظر کے ساتھ ویڈیو پلیئرز
  • نیویگیشن — GPS ٹریکنگ، جیو فینسنگ، ڈرائیونگ نیویگیٹرز
  • VoIP کالز — Skype، Zoom، Telegram — فعال کال کو برقرار رکھنا
  • فٹنس ٹریکرز — قدموں کی گنتی، دل کی دھڑکن کی نگرانی، ورزشیں
  • مطابقت پذیری — تصویر اپ لوڈ، ڈیٹا بیک اپ، آف لائن مواد کی اپ ڈیٹ

Kotlin میں Foreground Service بنانا

آئیے ڈیٹا کی مطابقت پذیری کے لیے Kotlin میں ایک Foreground Service بنانا دیکھتے ہیں۔ سروس ایک Activity سے شروع کی جائے گی، پیشرفت کے ساتھ ایک اطلاع دکھائے گی اور مکمل ہونے کے بعد صحیح طور پر ختم ہو جائے گی۔ مثال تمام لازمی عناصر کو ظاہر کرتی ہے: مینی فیسٹ میں اعلان، اطلاعی چینل، startForeground() کال اور foregroundServiceType ہینڈلنگ۔

kotlin
class SyncService : Service() {

    companion object {
        const val CHANNEL_ID = "sync_channel"
        const val NOTIFICATION_ID = 1001
    }

    override fun onCreate() {
        super.onCreate()
        createNotificationChannel()
    }

    override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
        val notification = buildNotification()
        startForeground(NOTIFICATION_ID, notification)
        performSync()
        return START_STICKY
    }

    private fun createNotificationChannel() {
        val channel = NotificationChannel(
            CHANNEL_ID,
            "مطابقت پذیری",
            NotificationManager.IMPORTANCE_LOW
        ).apply {
            description = "ڈیٹا سنک چینل"
        }
        val manager = getSystemService(NotificationManager::class.java)
        manager.createNotificationChannel(channel)
    }

    private fun buildNotification(): Notification {
        return NotificationCompat.Builder(this, CHANNEL_ID)
            .setContentTitle("مطابقت پذیری")
            .setContentText("سرور پر ڈیٹا اپ لوڈ")
            .setSmallIcon(R.drawable.ic_sync)
            .setOngoing(true)
            .build()
    }

    private fun performSync() {
        GlobalScope.launch(Dispatchers.IO) {
            // مطابقت پذیری کا تخیل
            delay(5000)
            stopForeground(Service.STOP_FOREGROUND_REMOVE)
            stopSelf()
        }
    }

    override fun onBind(intent: Intent): IBinder? = null
}

مینی فیسٹ میں سروس کا اعلان

Android 12+ پر سروس کے صحیح طریقے سے کام کرنے کے لیے، آپ کو Foreground Service کو AndroidManifest.xml میں قسم اور ضروری اجازتوں کے ساتھ اعلان کرنا ہوگا۔ foregroundServiceType وصف ہدف API 34+ کے لیے لازمی ہے، اور FOREGROUND_SERVICE_DATA_SYNC اور POST_NOTIFICATIONS اجازتیں رن ٹائم پر درخواست کی جانی چاہئیں۔

xml
<!-- AndroidManifest.xml -->
<uses-permission
    android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission
    android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<uses-permission
    android:name="android.permission.POST_NOTIFICATIONS" />

<application ...>
    <service
        android:name=".SyncService"
        android:foregroundServiceType="dataSync"
        android:exported="false" />
</application>

حدود اور متبادل

اعلی بھروسے کے باوجود، Foreground Service کی حدود ہیں۔ سب سے اہم صارف کے لیے نمائش ہے۔ ایپلیکیشن اطلاع کے بغیر پس منظر میں طویل مدتی کام انجام نہیں دے سکتی، جو UX کے نقطہ نظر سے ہمیشہ قابل قبول نہیں ہے۔ مزید برآں، نظام کچھ اقسام کے لیے وقت کی حد سے تجاوز کرنے پر Foreground Service کو بھی زبردستی روک سکتا ہے — مثال کے طور پر، dataSync کئی گھنٹوں کے آپریشن تک محدود ہے۔

Foreground Service کا ایک متبادل WorkManager ہے، جو موخر اور پس منظر کے کاموں کے لیے ایک Android Jetpack لائبریری ہے۔ WorkManager آلہ کے دوبارہ شروع ہونے کے بعد بھی کام کی انجام دہی کی ضمانت دیتا ہے اور کام کی زنجیروں، متواتر آپریشنز اور نیٹ ورک اور بیٹری کی پابندیوں کو سپورٹ کرتا ہے۔ زیادہ تر پس منظر کے آپریشنز کے لیے، Google براہ راست سروس کے بجائے WorkManager کی سفارش کرتا ہے۔

JobScheduler کاموں کو شیڈول کرنے کے لیے Android میں بلٹ ان API ہے۔ یہ ان آپریشنز کے لیے موزوں ہے جنہیں موخر کیا جا سکتا ہے: Wi-Fi مطابقت پذیری، چارجر سے منسلک ہونے پر ڈیٹا ڈاؤن لوڈ۔ JobScheduler بیٹری بچانے کے لیے کاموں کو ونڈوز میں گروپ کرتا ہے، Foreground Service کے برعکس جو پاور سیونگ حالت سے قطع نظر مسلسل چلتا ہے۔

مختصر کاموں (10–15 سیکنڈ تک) کے لیے، آپ موخر عملدرآمد کے ساتھ WorkManager سے CoroutineWorker استعمال کر سکتے ہیں۔ اگر کسی کام کو ایک مخصوص وقت پر سختی سے انجام دینا ہے، تو BroadcastReceiver کے ساتھ AlarmManager استعمال کیا جاتا ہے۔ اس طرح، Foreground Service طویل مدتی مسلسل آپریشنز کا ایک حل ہے، تمام پس منظر کے منظرناموں کے لیے ایک عالمگیر آلہ نہیں۔

  • WorkManager — دوبارہ شروع کرنے کی معاونت کے ساتھ موخر اور ضمانت شدہ کاموں کے لیے
  • JobScheduler — نیٹ ورک اور بیٹری کی حالت کو مدنظر رکھتے ہوئے کاموں کو شیڈول کرنے کے لیے
  • AlarmManager — عین وقت پر کاموں کو انجام دینے کے لیے
  • CoroutineWorker — کوروٹین سپورٹ کے ساتھ مختصر پس منظر کے آپریشنز کے لیے

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

Android میں Foreground Service کیا ہے؟

Foreground Service ایک Android سروس ہے جس میں اسٹیٹس بار میں مستقل اطلاع ہوتی ہے جو صارف کو دکھائی دینے والے طویل مدتی کام انجام دیتی ہے۔ اس کی بقا کی اعلی ترجیح ہوتی ہے اور Background Service کے برعکس، میموری کم ہونے پر نظام اسے نہیں روکتا۔

Foreground Service، Background Service سے کیسے مختلف ہے؟

Foreground Service ایک لازمی اطلاع دکھاتا ہے، اس کی کوئی وقت کی حد نہیں ہے اور نظام کے ختم کرنے سے محفوظ ہے۔ Background Service صارف کے لیے پوشیدہ ہے، 10 منٹ تک (API 26+) چلتی ہے اور کسی بھی وقت Low Memory Killer کے ذریعے روکی جا سکتی ہے۔

Android 14 میں Foreground Service کی کون سی اقسام ہیں؟

Android 14 نو (9) اقسام کی وضاحت کرتا ہے: dataSync، mediaPlayback، location، camera، connectedDevice، phoneCall، microphone، health اور remoteMessaging۔ ہر قسم کو ایک متعلقہ اجازت اور foregroundServiceType وصف کے ذریعے مینی فیسٹ میں اعلان کی ضرورت ہے۔

اگر startForeground وقت پر نہ بلایا جائے تو کیا ہوتا ہے؟

اگر سروس تخلیق کے 10 سیکنڈ کے اندر startForeground() کال نہیں کرتی (Android 14)، تو نظام ایک ForegroundServiceDidNotStartInTimeException استثنا پھینکتا ہے اور سروس کو زبردستی روک دیتا ہے۔ اگر آپریشن مرکزی تھریڈ پر چل رہا ہے تو ایپلیکیشن کو ANR (Application Not Responding) بھی ملے گا۔

کیا Foreground Service کی اطلاع چھپائی جا سکتی ہے؟

نہیں، Foreground Service کی اطلاع کو پروگرام کے ذریعے چھپانا ناممکن ہے۔ Android 9 (API 28) سے شروع کرکے، اطلاع لازمی ہے اور صارف اسے سوائپ کرکے نہیں ہٹا سکتا۔ اسے ہٹانے کا واحد طریقہ stopForeground(REMOVE_NOTIFICATION) اور stopSelf() کال کرکے سروس کو روکنا ہے۔

خلاصہ

  • Foreground Service — اسٹیٹس بار میں لازمی اطلاع والی Android سروس
  • ترجیح — Foreground Service عملی طور پر نظام کے ذریعے ختم نہیں ہوتا (ADJ 2)، Background Service کے برعکس (ADJ 8+)
  • اقسام — Android 14 کو قسم (dataSync، mediaPlayback، location، وغیرہ) اور متعلقہ اجازتوں کے اعلان کی ضرورت ہے
  • پابندیاں — Android 12+ میں پس منظر سے آغاز ممنوع؛ کچھ منظرناموں کے لیے FOREGROUND_SERVICE_SPECIAL_USE ضروری
  • متبادل — WorkManager موخر کاموں کے لیے، JobScheduler شیڈولنگ کے لیے، AlarmManager عین وقت کے لیے
  • کوڈ — لازمی عناصر: NotificationChannel، startForeground()، مینی فیسٹ میں foregroundServiceType
  • Google Play — ایپلیکیشن کی اشاعت کے لیے اعلان کردہ قسم اور سروس کے اصل استعمال کے درمیان مطابقت ضروری ہے

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

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

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

مزید پڑھیں