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

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

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

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

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

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

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

adb shell cmd activity stop-app PACKAGE_NAME