- תחביר:
<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><property>- תיאור:
- Declares a service, a
Servicesubclass, as one of the application's components. בניגוד לפעילויות, לשירותים אין ממשק משתמש חזותי. הם משמשים להטמעה של פעולות ממושכות ברקע או של 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", רק רכיבים של אותה אפליקציה או אפליקציות עם אותו User-ID יכולים להפעיל את השירות או להתחבר אליו.ערך ברירת המחדל תלוי בשאלה אם השירות מכיל מסנני כוונות. אם לא מציינים מסננים, אפשר להפעיל את הפונקציה רק אם מציינים את שם המחלקה המדויק שלה. המשמעות היא שהשירות מיועד לשימוש פנימי באפליקציה בלבד, כי אף אחד אחר לא יודע את שם המחלקה. לכן, במקרה הזה, ערך ברירת המחדל הוא
"false". מצד שני, אם יש לפחות מסנן אחד, המשמעות היא שהשירות מיועד לשימוש חיצוני, ולכן ערך ברירת המחדל הוא"true".המאפיין הזה הוא לא הדרך היחידה להגביל את החשיפה של שירות לאפליקציות אחרות. אפשר גם להשתמש בהרשאה כדי להגביל את הישויות החיצוניות שיכולות ליצור אינטראקציה עם השירות. מידע נוסף מפורט במאפיין
permission. android:foregroundServiceTypeמציינת שהשירות הוא שירות שפועל בחזית ועונה על תרחיש שימוש מסוים. לדוגמה, סוג של שירות שפועל בחזית
"location"מציין שאפליקציה מקבלת את המיקום הנוכחי של המכשיר, בדרך כלל כדי להמשיך פעולה שהמשתמש התחיל שקשורה למיקום המכשיר.אפשר להקצות כמה סוגים של שירותים שפועלים בחזית לשירות מסוים.
android:icon
- סמל שמייצג את השירות. המאפיין הזה מוגדר כהפניה למשאב שאפשר לצייר שמכיל את הגדרת התמונה.
אם לא מוגדר סמל, המערכת משתמשת בסמל שצוין לאפליקציה כולה. אפשר לעיין במאפיין
iconשל רכיב<application>.הסמל של השירות, בין אם הוא מוגדר כאן או באמצעות הרכיב
<application>, הוא גם סמל ברירת המחדל לכל מסנני ה-Intent של השירות. אפשר לעיין במאפיין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
<service>
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2026-07-01 (שעון UTC).
[null,null,["עדכון אחרון: 2026-07-01 (שעון UTC)."],[],[]]