- תחביר:
<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" android:stopWithTask=["true" | "false"]> ... </service>
- נכללים ב:
<application>
- יכול להכיל:
<intent-filter>
<meta-data>
- description:
- הצהרה על שירות, תת-סוג של
Service
, כאחד מהרכיבים של האפליקציה. בניגוד לפעילויות, לשירותים אין ממשק משתמש חזותי. הם משמשים להטמעת פעולות רקע ממושכות או ממשק API עשיר לתקשורת שאפשר להפעיל אותו מאפליקציות אחרות.כל השירותים צריכים להיות מיוצגים על ידי אלמנטים מסוג
<service>
בקובץ המניפסט. כל פונקציה שלא מוצגת שם לא מוצגת למערכת אף פעם.הערה: ב-Android 8.0 (רמת API 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
- סמל שמייצג את השירות. המאפיין הזה מוגדר כהפניה למשאב drawable שמכיל את הגדרת התמונה.
אם הוא לא מוגדר, המערכת תשתמש במקום זאת בסמל שצוין לאפליקציה כולה. אפשר לעיין במאפיין
icon
של הרכיב<application>
.הסמל של השירות, בין אם הוא מוגדר כאן ובין אם הוא מוגדר באמצעות הרכיב
<application>
, הוא גם הסמל שמוגדר כברירת מחדל לכל מסנני הכוונה של השירות. אפשר לעיין במאפייןicon
של הרכיב<intent-filter>
. android:isolatedProcess
- אם ההגדרה היא
"true"
, השירות פועל בתהליך מיוחד שמבודד משאר המערכת ואין לו הרשאות משלו. התקשורת היחידה איתו היא דרך Service 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()
לא ניתנה ההרשאה הזו, ה-method לא יפעל והאובייקטIntent
לא יועבר לשירות.אם המאפיין הזה לא מוגדר, ההרשאה שמוגדרת במאפיין
permission
של הרכיב<application>
חלה על השירות. אם אף אחד מהמאפיינים לא מוגדר, השירות לא מוגן על ידי הרשאה.מידע נוסף על הרשאות זמין בקטע הרשאות בסקירה הכללית על מניפסט האפליקציה ובהנחיות האבטחה.
android:process
- השם של התהליך שבו השירות פועל. בדרך כלל, כל הרכיבים של אפליקציה פועלים בתהליך ברירת המחדל שנוצר עבור האפליקציה. השם שלו זהה לשם חבילת האפליקציה. אפשר להגדיר ערך ברירת מחדל שונה לכל הרכיבים באמצעות המאפיין
process
של האלמנט<application>
. עם זאת, רכיב יכול לשנות את ברירת המחדל באמצעות המאפייןprocess
שלו, וכך לאפשר לכם לפצל את האפליקציה לכמה תהליכים.אם השם שהוקצה למאפיין הזה מתחיל בנקודתיים (
:
), נוצר תהליך חדש, פרטי לאפליקציה, כשיש צורך בכך, והשירות פועל בתהליך הזה.אם שם התהליך מתחיל באות קטנה, השירות פועל בתהליך גלובלי בשם הזה, בתנאי שיש לו הרשאה לעשות זאת. כך רכיבים באפליקציות שונות יכולים לשתף תהליך, וכך מפחיתים את השימוש במשאבים.
android:stopWithTask
- אם הערך מוגדר כ-
"true"
, המערכת תפסיק את השירות באופן אוטומטי כשהמשתמש מסיר משימה שמבוססת על פעילות שבבעלות האפליקציה. ערך ברירת המחדל הוא"false"
.
- מידע נוסף:
<application>
<activity>
- הופיע לראשונה:
- רמת API 1
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2024-12-18 (שעון UTC).
[[["התוכן קל להבנה","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-12-18 (שעון UTC)."],[],[]]