- بناء الجملة:
<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>
- description:
- يعرّف عن خدمة، فئة فرعية
Service
، باعتبارها فئة واحدة لمكونات التطبيق. على عكس الأنشطة، تفتقر الخدمات إلى واجهة مستخدم مرئية. وتُستخدم لتطبيق خلفية على المدى الطويل العمليات أو واجهة برمجة تطبيقات الاتصالات التفاعلية التي يمكن أن تستدعيها التطبيقات.يجب أن يتم تمثيل جميع الخدمات بعناصر
<service>
في ملف البيان. لا تتم رؤية أي سمات لم يتم الإعلان عنها. بواسطة النظام ولا يتم تشغيلها أبدًا.ملاحظة: في الإصدار Android 8.0 (المستوى 26 من واجهة برمجة التطبيقات) والإصدارات الأحدث، سيفرض النظام حدودًا ما يمكن لتطبيقك تنفيذه أثناء تشغيله في الخلفية. بالنسبة على مزيد من المعلومات، فراجع الأدلة التي تناقش حدود التنفيذ في الخلفية موقع الخلفية .
- :
android:description
- سلسلة تصف الخدمة ويمكن للمستخدم قراءتها تم تعيين الوصف باعتباره مرجعًا إلى مورد سلسلة، بحيث يمكن ترجمته مثل السلاسل الأخرى في واجهة المستخدم.
android:directBootAware
سواء كانت الخدمة مع العلم بالتمهيد المباشر، أي وما إذا كان من الممكن تشغيلها قبل أن يفتح المستخدم قفل الجهاز.
ملاحظة: خلال التشغيل المباشر، وهي خدمة في يمكن لتطبيقك الدخول إلى البيانات المخزنة في حماية الجهاز
القيمة التلقائية هي
"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
- رمز يمثّل الخدمة تم ضبط هذه السمة على أنّها
مرجعًا لمورد قابل للرسم يحتوي على تعريف الصورة.
إذا لم يتم تعيينه، فسيُرمز الرمز المحدّد للتطبيق
ككل بدلاً من ذلك. يمكنك الاطّلاع على
<application>
. السمةicon
للعنصر.رمز الخدمة، سواء تم ضبطه هنا أو بواسطة عنصر
<application>
، هو أيضًا الرمز التلقائي لجميع فلاتر الأهداف الخاصة بالخدمة. يمكنك الاطّلاع على عنصر<intent-filter>
السمةicon
. android:isolatedProcess
- في حال ضبط هذه السياسة على
"true"
، يتم تشغيل هذه الخدمة ضمن عملية خاصة معزولة عن بقية النظام وليس لديه أذونات خاصة به. ويكون الاتصال بها من خلال واجهة برمجة تطبيقات الخدمة، مع الارتباط والبدء. android:label
- اسم الخدمة سهل القراءة للمستخدم.
وفي حال عدم ضبط هذه السمة، سيتم ضبط التصنيف للتطبيق ككل على النحو التالي:
استخدامه بدلاً من ذلك. إليك العنصر
<application>
السمةlabel
.تصنيف الخدمة، سواء تم ضبطه هنا أو بواسطة عنصر
<application>
، هو أيضًا التصنيف التلقائي لجميع فلاتر الأهداف للخدمة. يمكنك الاطّلاع على عنصر<intent-filter>
السمةlabel
.يتم تعيين التسمية كمرجع لمورد السلسلة، بحيث يمكن ترجمتها مثل السلاسل الأخرى في واجهة المستخدم. ومع ذلك، ولتسهيل الأمر أثناء تطوير التطبيق، ويمكن أيضًا ضبطه كسلسلة أولية.
android:name
- اسم الفئة الفرعية
Service
التي تنفّذ الخدمة. هذا اسم فئة مؤهل بالكامل، مثل"com.example.project.RoomService"
ومع ذلك، كاختصار، إذا يكون الحرف الأول من الاسم نقطة، مثل".RoomService"
، يتم إلحاقه باسم الحزمة المحددة في العنصر<manifest>
بعد نشر التطبيق، لا تغيير هذا الاسم، ما لم يتم ضبط
android:exported="false"
.لا يوجد إعداد افتراضي. يجب تحديد الاسم.
android:permission
- اسم الإذن الذي يحتاجه كيان من أجل
إطلاق الخدمة أو الالتزام بها. إذا قام المتصل بـ
startService()
,bindService()
، أوstopService()
لم يتم منحه هذا الإذن، فإن الطريقة لا تعمل لم يتم تسليم العنصرIntent
إلى الخدمة.إذا لم يتم ضبط هذه السمة، سيتم منح الإذن الذي تحدّده السمة عنصر
<application>
permission
على الخدمة. وإذا لم يتم تعيين أي من السمتين، لن يتم تعيين الخدمة محميًا بإذن.لمزيد من المعلومات حول الأذونات، يمكنك الاطّلاع على الأذونات في نظرة عامة على بيان التطبيق إرشادات الأمان:
android:process
- اسم العملية التي يتم تشغيل الخدمة فيها. في العادة،
تشغيل جميع مكونات التطبيق في العملية الافتراضية التي يتم إنشاؤها
التطبيق. تحمل نفس اسم حزمة التطبيق. تشير رسالة الأشكال البيانية
عنصر
<application>
process
تعيين قيمة مختلفة افتراضيًا لجميع المكونات. ولكن يمكن للمكون تجاوز الإعداد الافتراضي مع سمةprocess
الخاصة بها، ما يتيح لك نشر تطبيقها عبر عمليات متعددة.إذا كان الاسم المعيّن لهذه السمة يبدأ بنقطتين (
:
)، تكون قيمة عملية خاصة بالتطبيق، عند الحاجة تعمل الخدمة في هذه العملية.إذا بدأ اسم العملية بحرف صغير، سيتم تشغيل الخدمة في عملية عمومية بهذا الاسم، بشرط أن يكون لديه إذن بالقيام بذلك. وهذا يتيح للمكونات في التطبيقات المختلفة مشاركة عملية، مما يقلل استخدام الموارد.
- راجِع أيضًا:
<application>
<activity>
- تم تقديمها في:
- المستوى 1 من واجهة برمجة التطبيقات
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2024-08-22 (حسب التوقيت العالمي المتفَّق عليه)
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"لا يحتوي على المعلومات التي أحتاج إليها."
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"الخطوات معقدة للغاية / كثيرة جدًا."
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"المحتوى قديم."
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"ثمة مشكلة في الترجمة."
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"مشكلة في العيّنات / التعليمات البرمجية"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"غير ذلك"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"يسهُل فهم المحتوى."
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"ساعَدني المحتوى في حلّ مشكلتي."
},{
"type": "thumb-up",
"id": "otherUp",
"label":"غير ذلك"
}]
{"lastModified": "\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u062a\u0639\u062f\u064a\u0644 \u0627\u0644\u0623\u062e\u064a\u0631: 2024-08-22 (\u062d\u0633\u0628 \u0627\u0644\u062a\u0648\u0642\u064a\u062a \u0627\u0644\u0639\u0627\u0644\u0645\u064a \u0627\u0644\u0645\u062a\u0641\u0651\u064e\u0642 \u0639\u0644\u064a\u0647)"}
[[["يسهُل فهم المحتوى.","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-08-22 (حسب التوقيت العالمي المتفَّق عليه)"]]