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