- نحو:
<service android:description="string resource" android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:foregroundServiceType=["camera" | "connectedDevice" | "dataSync" | "health" | "location" | "mediaPlayback" | "mediaProjection" | "microphone" | "phoneCall" | "remoteMessaging" | "shortService" | "specialUse" | "systemExempted"] android:icon="drawable resource" android:intentMatchingFlags=["none" | "enforceIntentFilter" | "allowNullAction"] android:isolatedProcess=["true" | "false"] android:label="string resource" android:name="string" android:permission="string" android:process="string" android:stopWithTask=["true" | "false"]> ... </service>
- مندرج در:
-
<application> - میتواند شامل موارد زیر باشد:
-
<intent-filter>
<meta-data>
<property> - شرح:
- یک سرویس، یک زیرکلاس
Service، را به عنوان یکی از اجزای برنامه اعلام میکند. برخلاف فعالیتها، سرویسها فاقد رابط کاربری بصری هستند. آنها برای پیادهسازی عملیات پسزمینه طولانی مدت یا یک API ارتباطی غنی که میتواند توسط برنامههای دیگر فراخوانی شود، استفاده میشوند.تمام سرویسها باید توسط عناصر
<service>در فایل مانیفست نمایش داده شوند. هر سرویسی که در آنجا تعریف نشده باشد، توسط سیستم دیده نمیشود و هرگز اجرا نمیشود.توجه: در اندروید ۸.۰ (سطح API ۲۶) و بالاتر، سیستم، فعالیتهایی را که برنامه شما میتواند در حین اجرا در پسزمینه انجام دهد، محدود میکند. برای اطلاعات بیشتر، به راهنماهایی که در مورد محدودیتهای اجرای پسزمینه و محدودیتهای مکان پسزمینه بحث میکنند، مراجعه کنید.
- ویژگیها:
-
android:description - یک رشته قابل خواندن توسط کاربر که سرویس را توصیف میکند. این توضیحات به عنوان مرجعی به یک منبع رشتهای تنظیم میشود، به طوری که میتواند مانند سایر رشتهها در رابط کاربری بومیسازی شود.
-
android:directBootAware اینکه آیا سرویس از Direct-Boot آگاه است یا خیر، یعنی اینکه آیا میتواند قبل از باز کردن قفل دستگاه توسط کاربر اجرا شود.
نکته: در طول بوت مستقیم ، یک سرویس در برنامه شما فقط میتواند به دادههایی که در حافظه محافظتشده دستگاه ذخیره شدهاند، دسترسی داشته باشد.
مقدار پیشفرض
"false"است.-
android:enabled - اینکه آیا سرویس میتواند توسط سیستم نمونهسازی شود یا خیر. اگر امکانش باشد،
"true"و در غیر این صورت"false"است. مقدار پیشفرض"true"است.عنصر
<application>ویژگیenabledبه خود را دارد که برای همه اجزای برنامه، از جمله سرویسها، اعمال میشود. ویژگیهای<application>و<service>باید هر دو"true"باشند، زیرا هر دو به طور پیشفرض فعال هستند تا سرویس فعال شود. اگر هر کدام"false"باشد، سرویس غیرفعال است و نمیتوان از آن نمونهسازی کرد. -
android:exported - اینکه آیا اجزای برنامههای دیگر میتوانند سرویس را فراخوانی کنند یا با آن تعامل داشته باشند یا خیر. اگر بتوانند
"true"و در غیر این صورت"false"است. وقتی مقدار"false"باشد، فقط اجزای همان برنامه یا برنامههایی با شناسه کاربری یکسان میتوانند سرویس را شروع کنند یا به آن متصل شوند.مقدار پیشفرض بستگی به این دارد که آیا سرویس شامل فیلترهای intent است یا خیر. عدم وجود هرگونه فیلتر به این معنی است که فقط با مشخص کردن نام دقیق کلاس آن میتوان آن را فراخوانی کرد. این بدان معناست که سرویس فقط برای استفاده داخلی برنامه در نظر گرفته شده است، زیرا دیگران نام کلاس را نمیدانند. بنابراین، در این مورد، مقدار پیشفرض
"false"است. از سوی دیگر، وجود حداقل یک فیلتر نشان میدهد که سرویس برای استفاده خارجی در نظر گرفته شده است، بنابراین مقدار پیشفرض"true"است.این ویژگی تنها راه برای محدود کردن نمایش یک سرویس به برنامههای دیگر نیست. همچنین میتوانید از یک مجوز برای محدود کردن موجودیتهای خارجی که میتوانند با سرویس تعامل داشته باشند استفاده کنید. به ویژگی
permissionمراجعه کنید. -
android:foregroundServiceType مشخص میکند که سرویس، یک سرویس پیشزمینه است که یک مورد استفاده خاص را برآورده میکند. برای مثال، نوع سرویس پیشزمینه
"location"نشان میدهد که یک برنامه در حال دریافت مکان فعلی دستگاه است، معمولاً برای ادامه یک اقدام آغاز شده توسط کاربر مربوط به مکان دستگاه.شما میتوانید چندین نوع سرویس پیشزمینه را به یک سرویس خاص اختصاص دهید.
-
android:icon نمادی که نشاندهندهی سرویس است. این ویژگی به عنوان مرجعی برای یک منبع قابل ترسیم که شامل تعریف تصویر است، تنظیم میشود. اگر تنظیم نشود، از نمادی که برای کل برنامه مشخص شده است، به جای آن استفاده میشود. به ویژگی
iconعنصر<application>مراجعه کنید.آیکون سرویس، چه اینجا تنظیم شود و چه توسط عنصر
<application>، آیکون پیشفرض برای همه فیلترهای intent سرویس نیز هست. به ویژگیiconعنصر<intent-filter>مراجعه کنید.-
android:intentMatchingFlags از این ویژگی برای تنظیم دقیق نحوه تطبیق اهداف ورودی سیستم با اجزای برنامه استفاده کنید. به طور پیشفرض، هیچ قانون تطبیق خاصی اعمال نمیشود.
مقدار تنظیم شده روی برچسب
<service>مقدار تنظیم شده روی برچسب<application>را لغو میکند.مقدار باید یک یا چند مورد از پرچمهای زیر باشد که با '
|' از هم جدا شدهاند:پرچم توضیحات noneتمام قوانین تطبیق ویژه را برای ورودیهای ورودی غیرفعال میکند. هنگام تعیین چندین پرچم، مقادیر متناقض با دادن اولویت به پرچم noneحل میشوند.enforceIntentFilterتطبیق سختگیرانهتری را برای اهداف ورودی اعمال میکند:
- اهداف صریح باید با فیلتر هدف کامپوننت هدف مطابقت داشته باشند.
- اینتنتهای بدون اکشن با هیچ فیلتر اینتنتی مطابقت ندارند.
allowNullActionقوانین تطبیق را آسان میکند تا به intent های بدون اکشن اجازه تطبیق داده شود. این پرچم همراه با
enforceIntentFilterبرای دستیابی به رفتار زیر استفاده میشود:- اهداف صریح باید با فیلتر هدف کامپوننت هدف مطابقت داشته باشند.
- اینتنتهای بدون اکشن مجاز به مطابقت با هر فیلتر اینتنتی هستند.
برای اطلاعات بیشتر، به بخش « اهداف امنتر» در تغییرات رفتاری اندروید ۱۶ (سطح API ۳۶) مراجعه کنید.
-
android:isolatedProcess - If set to
"true", this service runs under a special process that is isolated from the rest of the system and has no permissions of its own. The only communication with it is through the Service API, with binding and starting. -
android:label - یک نام قابل خواندن توسط کاربر برای سرویس. اگر این ویژگی تنظیم نشده باشد، برچسب تنظیم شده برای کل برنامه به جای آن استفاده میشود. به ویژگی
labelعنصر<application>مراجعه کنید.برچسب سرویس، چه در اینجا و چه توسط عنصر
<application>تنظیم شود، برچسب پیشفرض برای همه فیلترهای intent سرویس نیز هست. به ویژگیlabelعنصر<intent-filter>مراجعه کنید.این برچسب به عنوان مرجعی برای یک منبع رشتهای تنظیم شده است، به طوری که میتواند مانند سایر رشتهها در رابط کاربری بومیسازی شود. با این حال، برای راحتی شما در حین توسعه برنامه، میتوانید آن را به عنوان یک رشته خام نیز تنظیم کنید.
-
android:name - نام زیرکلاس
Serviceکه سرویس را پیادهسازی میکند. این یک نام کلاس کاملاً واجد شرایط است، مانند"com.example.project.RoomService". با این حال، به عنوان اختصار، اگر اولین کاراکتر نام یک نقطه باشد، مانند".RoomService"، به نام بسته مشخص شده در عنصر<manifest>اضافه میشود.پس از انتشار برنامه، این نام را تغییر ندهید ، مگر اینکه
android:exported ="false"را تنظیم کرده باشید.هیچ پیشفرضی وجود ندارد. نام باید مشخص شود.
-
android:permission - نام مجوزی که یک موجودیت برای راهاندازی سرویس یا اتصال به آن نیاز دارد. اگر به فراخوانیکنندهی
startService()،bindService()یاstopService()این مجوز داده نشود، متد کار نمیکند و شیءIntentبه سرویس تحویل داده نمیشود.اگر این ویژگی تنظیم نشده باشد، مجوز تنظیم شده توسط ویژگی
permissionعنصر<application>برای سرویس اعمال میشود. اگر هیچ یک از ویژگیها تنظیم نشده باشند، سرویس توسط مجوز محافظت نمیشود.برای اطلاعات بیشتر در مورد مجوزها، به بخش مجوزها در نمای کلی مانیفست برنامه و دستورالعملهای امنیتی مراجعه کنید.
-
android:process - نام فرآیندی که سرویس در آن اجرا میشود. معمولاً تمام اجزای یک برنامه در فرآیند پیشفرض ایجاد شده برای برنامه اجرا میشوند. این فرآیند همان نام بسته برنامه را دارد. ویژگی
processعنصر<application>میتواند پیشفرض متفاوتی را برای همه اجزا تعیین کند. اما یک جزء میتواند پیشفرض را با ویژگیprocessخود لغو کند و به شما امکان دهد برنامه خود را در چندین فرآیند پخش کنید.اگر نام اختصاص داده شده به این ویژگی با یک دونقطه (
:شروع شود، یک فرآیند جدید، خصوصی برای برنامه، در صورت نیاز ایجاد میشود و سرویس در آن فرآیند اجرا میشود.اگر نام فرآیند با یک کاراکتر کوچک شروع شود، سرویس در یک فرآیند سراسری با آن نام اجرا میشود، مشروط بر اینکه مجوز انجام این کار را داشته باشد. این امر به اجزای برنامههای مختلف اجازه میدهد تا یک فرآیند را به اشتراک بگذارند و استفاده از منابع را کاهش دهند.
-
android:stopWithTask - If set to
"true", the system automatically stops the service when the user removes a task that is rooted in an activity that the app owns. The default value is"false".
-
- همچنین ببینید:
-
<application>
<activity> - معرفی شده در:
- API سطح ۱
<سرویس>
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2026-07-02 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2026-07-02 بهوقت ساعت هماهنگ جهانی."],[],[]]