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

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

ביטול חסימה של מצב שינה

כדי לבטל חסימה פעילה של מצב שינה, צריך להריץ את שיטת ה-release() המתאימה. החסימה של המעבד תבוטל.

לדוגמה, הקוד הבא מפעיל חסימת מצב שינה, מבצע פעולה מסוימת ואז מבטל את החסימה:

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, כדי שהחסימה תבוטל גם אם הייתה שגיאה. תמיד חשוב לוודא שהחסימה של מצב השינה מתבטלת — אז עברו על כל נתיבי הקוד הפוטנציאליים ובדקו את זה.

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

למידע נוסף