טיפול בעצירה ביוזמת המשתמש של אפליקציות שמפעילות שירותים בחזית

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

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

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

כשהמשתמש לוחץ על הלחצן Stop לצד האפליקציה ב-Task Manager, מתרחשות הפעולות הבאות:

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

כדי לבדוק שהאפליקציה מתנהגת כצפוי בזמן שהמשתמש מפסיק אותה ואחרי שהוא מפסיק אותה, מריצים את פקודת ה-ADB הבאה בחלון מסוף:

adb shell cmd activity stop-app PACKAGE_NAME