ویک لاک را آزاد کنید، ویک قفل را آزاد کنید، ویک قفل را آزاد کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
این صفحه نحوه آزاد کردن 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 روی هیچ یک از آنها فعال باقی نمانده است.
همچنین ببینید
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-08-24 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-08-24 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Release a wake lock\n\nThis page describes how to release a wake lock held by your app.\nIt's important to release a wake lock as soon as your app is\nfinished using it to avoid draining the battery.\n\nRelease an active wake lock\n---------------------------\n\nTo release an active wake lock, call its [`release()`](/reference/android/os/PowerManager.WakeLock#release()) method. Doing so\nreleases your claim to the CPU.\n\nFor example, the following code [acquires a wake lock](/develop/background-work/background-tasks/awake/wakelock/set),\ndoes some work, then releases the wake lock:\n\n\n### Kotlin\n\n```kotlin\n@Throws(MyException::class)\nfun doSomethingAndRelease() {\n wakeLock.apply {\n try {\n acquire()\n doTheWork()\n } finally {\n release()\n }\n }\n}https://github.com/android/snippets/blob/dd30aee903e8c247786c064faab1a9ca8d10b46e/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt#L42-L52\n```\n\n### Java\n\n```java\nvoid doSomethingAndRelease() throws MyException {\n try {\n wakeLock.acquire();\n doTheWork();\n } finally {\n wakeLock.release();\n }\n}https://github.com/android/snippets/blob/dd30aee903e8c247786c064faab1a9ca8d10b46e/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsJava.java#L27-L34\n```\n\n\u003cbr /\u003e\n\nMake sure to release wake locks as soon as they are no longer needed. For\nexample, if you use a wake lock to allow a background task to finish, make sure\nto release the lock as soon as the task finishes.\n\n### Key points about this code\n\nIn this example, the method `doTheWork()` might throw an exception. For this\nreason, the code releases the wake lock in the `finally` block, to make sure\nthe wake lock is released whether or not an exception is thrown. It's very\nimportant to make sure every wake lock you set is released, so you need to\ncheck every possible code path to make sure the wake lock isn't left active\non any of them.\n\nSee also\n--------\n\n- [Set a wake lock](/develop/background-work/background-tasks/awake/wakelock/set)"]]