חסימות חלקיות של מצב השינה הן מנגנון ב-API של PowerManager שמאפשר למפתחים להמשיך להפעיל את המעבד אחרי שהמסך של המכשיר כבה (בין אם בגלל זמן קצוב לתפוגה של המערכת או בגלל שהמשתמש לחץ על כפתור ההפעלה). האפליקציה מקבלת חסימת מצב שינה חלקית על ידי קריאה ל-acquire() עם הדגל PARTIAL_WAKE_LOCK, או על ידי שימוש בממשקי API אחרים שמקבלים חסימות מצב שינה.
חסימת מצב שינה חלקית נתקעת אם היא נשמרת למשך זמן רב בזמן שהאפליקציה פועלת ברקע (אף חלק מהאפליקציה לא גלוי למשתמש). המצב הזה מרוקן את הסוללה של המכשיר כי הוא מונע ממנו לעבור למצבים שבהם צריכת החשמל נמוכה יותר. מומלץ להשתמש בחסימות חלקיות של מצב השינה רק כשצריך, ולשחרר אותן ברגע שהן כבר לא נחוצות.
אם באפליקציה יש חסימת מצב שינה חלקית תקועה, אפשר להיעזר בהנחיות שבדף הזה כדי לאבחן את הבעיה ולפתור אותה.
פתרון הבעיה
חסימות של מצב השינה עלולות לרוקן את הסוללה של המכשיר, ולכן לא מומלץ להשתמש בהן אם יש חלופה. במאמר העזרה בחירת ה-API הנכון כדי למנוע את מצב השינה של המכשיר מוסבר איך למצוא את הפתרון הטוב ביותר לאפליקציה שלכם.
אם אתם צריכים לחסום את מצב השינה, כדאי לפעול לפי השיטות המומלצות כדי לוודא שהחסימה לא תפגע ביעילות המכשיר. חשוב במיוחד להקפיד ולשחרר כל מכשיר שחוסמים את מצב השינה שלו, ולעשות את זה בהקדם האפשרי.
אחרי שמתקנים את הבעיה בקוד, אפשר לתקף את התיקונים באמצעות כלים מקומיים לניפוי באגים של חסימת מצב השינה.
עוד באותו הקשר
מומלץ בשבילכם
- הערה: טקסט הקישור מוצג כש-JavaScript מושבת
- פריימים קפואים
- הרצת בדיקות ביצועים באינטגרציה רציפה
- יצירה ומדידה של פרופילי Baseline בלי Macrobenchmark