מפעילים את PowerManager.newWakeLock() כדי ליצור נעילת השכמה.
הפעולה הזו יוצרת ומגדירה אובייקט PowerManager.WakeLock אבל לא
מונעת מהמכשיר לעבור למצב שינה.
כשרוצים שהמכשיר לא יעבור למצב שינה, קוראים ל-method acquire() של אובייקט הנעילה למניעת מעבר למצב שינה.
לדוגמה, אם האפליקציה כוללת מקלט שידור שמשתמש בשירות כדי לבצע פעולה מסוימת, אפשר להשתמש בקוד הזה כדי להגדיר ולרכוש נעילת השכמה:
כשהקוד יוצר את אובייקט הנעילה למניעת שינה, הוא משתמש בשם המחלקה כחלק מתג הנעילה למניעת שינה. מומלץ לכלול את שם החבילה, הכיתה או השיטה
כחלק מתג הנעילה של ההתעוררות. כך, אם מתרחשת שגיאה, קל יותר לאתר את נעילת ההשכמה בקוד המקור. מידע נוסף זמין במאמר Name the wake lock properly.
WakeLock.acquire(long) מקבלת ערך של זמן קצוב לתפוגה באלפיות השנייה. המערכת משחררת את נעילת ההשכמה אחרי הזמן הזה, אם עדיין לא שחררתם אותה.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-09-06 (שעון UTC).
[[["התוכן קל להבנה","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-09-06 (שעון UTC)."],[],[],null,["You can set a *wake lock* to temporarily keep the device awake.\n| **Note:** Creating and holding wake locks can have a dramatic impact on the device's battery life. You shouldn't use wake locks if there are any suitable alternatives. For other options, see the [Choose the right API to keep the device awake](/develop/background-work/background-tasks/awake) documentation. If you do need to use a wake lock, make sure to hold it for as short a time as possible.\n\nDependencies\n\nYour app must have the [`WAKE_LOCK`](/reference/android/Manifest.permission#WAKE_LOCK) permission to set a wake lock.\nAdd the permission to your app's manifest: \n\n \u003cuses-permission android:name=\"android.permission.WAKE_LOCK\" /\u003e\n\nCreate and acquire a wake lock\n\nTo acquire a wake lock, do the following:\n\n1. Call [`PowerManager.newWakeLock()`](/reference/android/os/PowerManager#newWakeLock(int,%20java.lang.String)) to create a wake lock.\n This creates and configures a `PowerManager.WakeLock` object but does not\n actually keep the device awake.\n\n2. When you want to keep the device awake, call the wake lock object's\n [`acquire()`](/reference/android/os/PowerManager.WakeLock#acquire(long)) method.\n\nFor example, if your app includes a broadcast receiver that uses a service to do\nsome work, you can use this code to set and acquire a wake lock:\n\n\nKotlin \n\n```kotlin\nval wakeLock: PowerManager.WakeLock =\n (getSystemService(POWER_SERVICE) as PowerManager).run {\n newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, \"MyClassName::MyWakelockTag\").apply {\n acquire(WAKELOCK_TIMEOUT)\n }\n }https://github.com/android/snippets/blob/30ed522851a9273c94afcd3a4c30bf674346ad18/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt#L29-L34\n```\n\nJava \n\n```java\nPowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);\nPowerManager.WakeLock wakeLock =\n powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, \"MyClassName::MyWakelockTag\");\nwakeLock.acquire(WAKELOCK_TIMEOUT);https://github.com/android/snippets/blob/30ed522851a9273c94afcd3a4c30bf674346ad18/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsJava.java#L19-L22\n```\n\n\u003cbr /\u003e\n\nKey points about this code\n\n- When the code creates the wake lock object, it uses the class's name as part\n of the wake lock tag. We recommend including your package, class, or method\n name as part of the wake lock tag. That way, if an error occurs, it's easier\n to locate the wake lock in your source code. For more information, see [Name\n the wake lock properly](/develop/background-work/background-tasks/awake/wakelock/best-practices#name).\n\n- `WakeLock.acquire(long)` is passed a timeout value in milliseconds. The\n system releases the wake lock after this much time passes, if you have not\n [already released it](/develop/background-work/background-tasks/awake/wakelock/release).\n\nSee also\n\n- [Release a wake lock](/develop/background-work/background-tasks/awake/wakelock/release)\n- [Follow wake lock best practices](/develop/background-work/background-tasks/awake/wakelock/best-practices)"]]