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

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

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

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

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

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

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

adb shell cmd activity stop-app PACKAGE_NAME