این صفحه نحوه آزاد کردن wake lock که توسط برنامه شما نگه داشته شده است را شرح می دهد. مهم است که به محض اتمام استفاده از برنامه شما، wake lock را آزاد کنید تا از تخلیه باتری جلوگیری شود.
یک wake lock فعال را آزاد کنید
برای آزاد کردن wake lock فعال، متد release()
آن را فراخوانی کنید. با انجام این کار ادعای شما نسبت به CPU آزاد می شود.
به عنوان مثال، کد زیر یک wake lock میگیرد ، کمی کار میکند، سپس wake lock را آزاد میکند:
کاتلین
@Throws(MyException::class)
fun doSomethingAndRelease() {
wakeLock.apply {
try {
acquire()
doTheWork()
} finally {
release()
}
}
}
جاوا
void doSomethingAndRelease() throws MyException {
try {
wakeLock.acquire();
doTheWork();
} finally {
wakeLock.release();
}
}
مطمئن شوید که wake lock ها را به محض اینکه دیگر مورد نیاز نیستند آزاد کنید. برای مثال، اگر از wake lock برای اجازه دادن به کار پسزمینه استفاده میکنید، مطمئن شوید که به محض اتمام کار، قفل را آزاد کنید.
نکات کلیدی در مورد این کد
در این مثال، متد doTheWork()
ممکن است یک استثنا ایجاد کند. به همین دلیل، کد wake lock را در بلوک finally
آزاد میکند تا مطمئن شود که wake lock آزاد میشود، چه استثنایی وجود داشته باشد یا نه. بسیار مهم است که مطمئن شوید تمام wake lock که تنظیم میکنید آزاد میشوند، بنابراین باید تمام مسیرهای کد ممکن را بررسی کنید تا مطمئن شوید که wake lock روی هیچ یک از آنها فعال باقی نمانده است.