שינויים בשירותים שפועלים בחזית

במסמכי התיעוד של שירותים שפועלים בחזית מתואר אופן הפעולה הנוכחי של שירותים שפועלים בחזית ב-Android. במסמכי התיעוד מפורטות שיטות מומלצות לרוב האפליקציות, בין אם הן מיועדות לגרסה העדכנית ביותר של Android ובין אם לא.

בדף הזה מתוארים כמה מהשינויים החשובים האחרונים בשירותים שפועלים בחזית, וההשלכות שלהם על אפליקציות שלא מיועדות לגרסה העדכנית ביותר של פלטפורמת Android. במקרים רבים, שיטות מומלצות שהיו אופציונליות לאפליקציות שמטרגטות רמות API נמוכות יותר הופכות לחובה לאפליקציות שמטרגטות רמות API גבוהות יותר.

‫Android 16 (רמת API 36)

השינויים הבאים חלים על אפליקציות שפועלות ב-Android 16 ואילך, ללא קשר לרמת ה-API שהן מטרגטות:

  • משימות שפועלות ברקע ומופעלות משירות שפועל בחזית חייבות לעמוד עכשיו במכסות זמן הריצה שלהן. זה כולל משימות שמתוזמנות ישירות באמצעות JobScheduler, וגם משימות שנוצרות על ידי ספריות אחרות כמו WorkManager או DownloadManager.

    כדי להעביר נתונים בתגובה לפעולת משתמש, כדאי להשתמש בפעולת העברת נתונים שהמשתמש יזם. המשרות האלה פטורות ממכסות המשרות הרגילות.

‫Android 15 (רמת API‏ 35)

הדרישות הבאות חלות על אפליקציות שמטרגטות לרמת API 35 ומעלה:

‫Android 14 (רמת API 34)

הדרישות הבאות חלות על אפליקציות שמטרגטות רמת API 34 ומעלה:

‫Android 12 (רמת API‏ 31)

הדרישות הבאות חלות על אפליקציות שמטרגטות לרמת API 31 ומעלה:

‫Android 11 (רמת API 30)

הדרישות הבאות חלות על אפליקציות שמטרגטות רמת API 30 ומעלה:

  • אם שירותים שפועלים בחזית באפליקציה משתמשים במצלמה או במיקרופון, האפליקציה צריכה להצהיר על השירות עם סוג השירות camera או microphone, בהתאמה.

‫Android 10 (רמת API‏ 29)

הדרישות הבאות חלות על אפליקציות שמטרגטות רמת API 29 ומעלה:

  • אם השירותים שפועלים בחזית באפליקציה משתמשים במידע על מיקום, האפליקציה צריכה להצהיר על השירות עם סוג השירות location.

‫Android 9 (רמת API‏ 28)

ב-Android 9 הוצגה ההרשאה FOREGROUND_SERVICE. אפליקציות שפועלות ב-Android 9 ומשתמשות בשירותים שפועלים בחזית חייבות לקבל את ההרשאה הזו.

אם אפליקציה שמטרגטת רמת API 28 ומעלה מנסה ליצור שירות שפועל בחזית בלי לבקש את ההרשאה FOREGROUND_SERVICE, המערכת מציגה SecurityException.