- نحو:
<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:isolatedProcess=["true" | "false"] android:label="string resource" android:name="string" android:permission="string" android:process="string" > ... </service>
- موجود در:
-
<application>
- می تواند شامل:
-
<intent-filter>
<meta-data>
- توضیحات:
- یک سرویس، یک زیر کلاس
Service
، را به عنوان یکی از اجزای برنامه اعلام می کند. برخلاف فعالیت ها، سرویس ها فاقد رابط کاربری بصری هستند. آنها برای اجرای عملیات پس زمینه طولانی مدت یا یک API ارتباطات غنی که می تواند توسط برنامه های کاربردی دیگر فراخوانی شود، استفاده می شود.همه سرویس ها باید با عناصر
<service>
در فایل مانیفست نمایش داده شوند. هر چیزی که اعلام نشده باشد توسط سیستم دیده نمی شود و هرگز اجرا نمی شود.توجه: در Android 8.0 (سطح API 26) و بالاتر، سیستم کاری را که برنامه شما میتواند در پسزمینه انجام دهد محدود میکند. برای اطلاعات بیشتر، راهنماهایی را ببینید که در مورد محدودیتهای اجرای پسزمینه و محدودیتهای مکان پسزمینه بحث میکنند.
- صفات:
-
android:description
- یک رشته قابل خواندن توسط کاربر که سرویس را توصیف می کند. توضیحات به عنوان یک مرجع به یک منبع رشته تنظیم می شود، به طوری که می توان آن را مانند سایر رشته ها در رابط کاربری محلی سازی کرد.
-
android:directBootAware
این که آیا سرویس از Direct-Boot آگاه است، یعنی اینکه آیا میتواند قبل از باز کردن قفل دستگاه توسط کاربر اجرا شود یا خیر.
توجه: در طول راهاندازی مستقیم ، یک سرویس در برنامه شما فقط میتواند به دادههایی دسترسی داشته باشد که در حافظه محافظت شده دستگاه ذخیره شدهاند.
مقدار پیش فرض
"false"
است.-
android:enabled
- آیا سرویس می تواند توسط سیستم نمونه سازی شود یا خیر. اگر می تواند
"true"
است و اگر نه"false"
. مقدار پیش فرض"true"
است.عنصر
<application>
ویژگیenabled
خود را دارد که برای همه اجزای برنامه از جمله سرویس ها اعمال می شود. ویژگیهای<application>
و<service>
باید هر دو"true"
باشند، زیرا هر دو به طور پیشفرض هستند تا سرویس فعال شود. اگر هر کدام"false"
باشد، سرویس غیرفعال می شود و نمی توان آن را نمونه سازی کرد. -
android:exported
- آیا اجزای برنامه های کاربردی دیگر می توانند سرویس را فراخوانی کنند یا با آن تعامل داشته باشند. اگر آنها بتوانند
"true"
است و اگر نه"false"
. وقتی مقدار"false"
است، فقط اجزای یک برنامه یا برنامه های کاربردی با شناسه کاربری یکسان می توانند سرویس را راه اندازی کنند یا به آن متصل شوند.مقدار پیش فرض بستگی به این دارد که آیا سرویس دارای فیلترهای هدف است یا خیر. عدم وجود فیلتر به این معنی است که فقط با مشخص کردن نام کلاس دقیق آن می توان آن را فراخوانی کرد. این بدان معناست که این سرویس فقط برای استفاده داخلی برنامه در نظر گرفته شده است، زیرا دیگران نام کلاس را نمی دانند. بنابراین، در این مورد، مقدار پیش فرض
"false"
است. از سوی دیگر، وجود حداقل یک فیلتر نشان میدهد که این سرویس برای استفاده خارجی در نظر گرفته شده است، بنابراین مقدار پیشفرض"true"
است.این ویژگی تنها راه برای محدود کردن قرار گرفتن در معرض یک سرویس به سایر برنامهها نیست. همچنین میتوانید از یک مجوز برای محدود کردن نهادهای خارجی که میتوانند با سرویس تعامل داشته باشند، استفاده کنید. ویژگی
permission
را ببینید. -
android:foregroundServiceType
مشخص می کند که سرویس یک سرویس پیش زمینه است که یک مورد استفاده خاص را برآورده می کند. به عنوان مثال، یک نوع سرویس پیشزمینه
"location"
نشان میدهد که یک برنامه در حال دریافت مکان فعلی دستگاه است، معمولاً برای ادامه یک اقدام آغاز شده توسط کاربر مربوط به مکان دستگاه.می توانید چندین نوع سرویس پیش زمینه را به یک سرویس خاص اختصاص دهید.
-
android:icon
- نمادی که نشان دهنده سرویس است. این ویژگی به عنوان یک مرجع به یک منبع قابل ترسیم حاوی تعریف تصویر تنظیم می شود. اگر تنظیم نشده باشد، به جای آن از نماد مشخص شده برای برنامه به طور کلی استفاده می شود. ویژگی
icon
عنصر<application>
را ببینید.نماد سرویس، چه در اینجا یا توسط عنصر
<application>
تنظیم شود، همچنین نماد پیشفرض تمام فیلترهای هدف سرویس است. ویژگیicon
عنصر<intent-filter>
را ببینید. -
android:isolatedProcess
- اگر روی
"true"
تنظیم شود، این سرویس تحت یک فرآیند خاص اجرا می شود که از بقیه سیستم جدا شده است و هیچ مجوزی ندارد. تنها ارتباط با آن از طریق سرویس API با اتصال و شروع است. -
android:label
- یک نام قابل خواندن توسط کاربر برای سرویس. اگر این ویژگی تنظیم نشده باشد، به جای آن از برچسب مجموعه برای برنامه به طور کلی استفاده می شود. ویژگی
label
عنصر<application>
را ببینید.برچسب سرویس، چه در اینجا تنظیم شود و چه توسط عنصر
<application>
، همچنین برچسب پیش فرض برای تمام فیلترهای هدف سرویس است. ویژگی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
خود لغو کند و به شما امکان می دهد برنامه خود را در چندین فرآیند پخش کنید.اگر نام تخصیص داده شده به این ویژگی با یک دونقطه (
:
) شروع شود، یک فرآیند جدید، خصوصی برای برنامه، در صورت نیاز ایجاد می شود و سرویس در آن فرآیند اجرا می شود.اگر نام فرآیند با یک کاراکتر کوچک شروع شود، سرویس در یک فرآیند جهانی با آن نام اجرا میشود، مشروط بر اینکه مجوز انجام این کار را داشته باشد. این به اجزای برنامه های مختلف اجازه می دهد تا فرآیندی را به اشتراک بگذارند و مصرف منابع را کاهش دهد.
-
- همچنین ببینید:
-
<application>
<activity>
- معرفی شده در:
- API سطح 1
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2024-09-09 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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"]],["تاریخ آخرین بهروزرسانی 2024-09-09 بهوقت ساعت هماهنگ جهانی."],[],[]]