Uyanık kalma kilidini bırakma
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Bu sayfada, uygulamanızın tuttuğu uyanık tutma kilidinin nasıl serbest bırakılacağı açıklanmaktadır.
Pilin boşalmasını önlemek için uygulamanız uyanık tutma kilidini kullanmayı bitirir bitirmez serbest bırakmanız önemlidir.
Etkin bir uyanık kalma kilidini serbest bırakma
Etkin bir uyandırma kilidini serbest bırakmak için release()
yöntemini çağırın. Bunu yaptığınızda
CPU'daki talebiniz serbest bırakılır.
Örneğin, aşağıdaki kod uyandırma kilidi alır, bazı işlemler yapar ve ardından uyandırma kilidini serbest bırakır:
Kotlin
@Throws(MyException::class)
fun doSomethingAndRelease() {
wakeLock.apply {
try {
acquire()
doTheWork()
} finally {
release()
}
}
}
Java
void doSomethingAndRelease() throws MyException {
try {
wakeLock.acquire();
doTheWork();
} finally {
wakeLock.release();
}
}
Gerekli olmadıkları anda uyandırma kilitlerini serbest bıraktığınızdan emin olun. Örneğin, bir arka plan görevinin tamamlanmasına izin vermek için uyanık kalma kilidi kullanıyorsanız görev tamamlanır tamamlanmaz kilidi serbest bıraktığınızdan emin olun.
Bu kodla ilgili önemli noktalar
Bu örnekte, doTheWork()
yöntemi istisna hatası verebilir. Bu nedenle, kod, bir istisna oluşturulup oluşturulmadığından bağımsız olarak uyandırma kilidinin serbest bırakıldığından emin olmak için finally
bloğunda uyandırma kilidini serbest bırakır. Ayarladığınız her uyandırma kilidinin serbest bırakıldığından emin olmanız çok önemlidir. Bu nedenle, uyandırma kilidinin herhangi bir kod yolunda etkin kalmadığından emin olmak için olası tüm kod yollarını kontrol etmeniz gerekir.
Ayrıca bkz.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-08-30 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-08-30 UTC."],[],[],null,["This 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\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\nKotlin \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/f95ab59fad80aeaf5d6a90bab8a01a126f20f44e/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt#L42-L52\n```\n\nJava \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/f95ab59fad80aeaf5d6a90bab8a01a126f20f44e/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\nKey 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- [Set a wake lock](/develop/background-work/background-tasks/awake/wakelock/set)"]]