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

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

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

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

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

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

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

adb shell cmd activity stop-app PACKAGE_NAME