שחרור של נעילת מצב שינה

בדף הזה מוסבר איך לשחרר את נעילת ההשכמה שהאפליקציה מחזיקה. חשוב לשחרר את נעילת ההשכמה ברגע שהאפליקציה סיימה להשתמש בה כדי למנוע ניקוז של הסוללה.

שחרור של חסימת מצב שינה פעילה

כדי לשחרר wake lock פעיל, צריך לבצע קריאה ל-method‏ release() שלו. כך התביעה שלכם תשוחרר למעבד.

לדוגמה, הקוד הבא רוכש wake lock, מבצע פעולה מסוימת ואז משחרר את ה-wake lock:

Kotlin

@Throws(MyException::class)
fun doSomethingAndRelease() {
    wakeLock.apply {
        try {
            acquire(WAKELOCK_TIMEOUT)
            doTheWork()
        } finally {
            release()
        }
    }
}

Java

void doSomethingAndRelease() throws MyException {
    try {
        wakeLock.acquire(WAKELOCK_TIMEOUT);
        doTheWork();
    } finally {
        wakeLock.release();
    }
}

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

נקודות חשובות לגבי הקוד הזה

  • בדוגמה הזו, יכול להיות שהשיטה doTheWork() תגרום לחריגה. לכן, הקוד משחרר את נעילת ההשכמה בבלוק finally, כדי לוודא שנעילת ההשכמה משוחררת בין אם נוצר חריג ובין אם לא. חשוב מאוד לוודא שכל נעילת השהיה שהגדרתם משוחררת, ולכן צריך לבדוק כל נתיב קוד אפשרי כדי לוודא שנעילת ההשהיה לא נשארת פעילה באף אחד מהם.

  • מומלץ להשתמש ב-wake lock עם WakeLock.acquire(long timeout), כי הוא משחרר את ה-wake lock באופן אוטומטי אחרי תקופת הזמן הקצובה שצוינה. עם זאת, עדיין צריך לשחרר את נעילת ההשכמה באופן מפורש כשלא זקוקים לה יותר, כדי שלא תהיה נעילת השכמה למשך זמן ארוך מהנדרש.

למידע נוסף