با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Wake lock جزئی مکانیزمی در PowerManager API است که به توسعه دهندگان این امکان را می دهد که CPU را پس از خاموش شدن نمایشگر دستگاه (چه به دلیل وقفه زمانی سیستم یا فشار دادن دکمه پاور توسط کاربر) روشن نگه دارند. برنامه شما با فراخوانی acquire() با پرچم PARTIAL_WAKE_LOCK ، یا با استفاده از سایر APIهایی که wake lock را دریافت میکنند، یک wake lock جزئی دریافت میکند. استفاده بیش از حد از وایک لاک جزئی باعث تخلیه باتری دستگاه می شود زیرا از ورود دستگاه به حالت های کم مصرف جلوگیری می کند. وایک لاک های جزئی باید فقط در صورت لزوم استفاده شوند و به محض اینکه دیگر مورد نیاز نباشند آزاد شوند.
اگر برنامه شما بیش از حد از wake lock های جزئی استفاده می کند، می توانید از راهنمایی در این صفحه برای تشخیص و رفع مشکل استفاده کنید.
بازخورد شما بخش مهمی در بهبود اسناد ما است. لطفا نظرات خود را از طریق لینک زیر برای ما ارسال کنید:
Android vitals می تواند به شما کمک کند متوجه شوید که چه زمانی برنامه شما از wake lock های جزئی بیش از حد استفاده می کند.
حیاتی اندروید
Android vitals می تواند با هشدار دادن به شما از طریق کنسول Play در زمانی که برنامه شما از wake lock جزئی بیش از حد استفاده می کند، به بهبود عملکرد برنامه شما کمک کند.
Android vitals استفاده از wake lock جزئی را زمانی که همه wake lockهای جزئی با هم جمع شدهاند، برای 3 ساعت یا بیشتر در دوره 24 ساعته اجرا میکنند، بیش از حد گزارش میکند.
Android vitals زمان را فقط در صورتی ردیابی میکند که wake lock زمانی که برنامه در پسزمینه است و سرویس پیشزمینه ندارد نگه داشته شود.
Android vitals برای استفاده از wake lock جزئی در سناریوهایی که مزایای کاربر واضحی از wake lock جزئی وجود دارد، معافیت هایی می دهد، و هیچ راه بهتری برای دستیابی به این نتیجه بدون وایک لاک جزئی وجود ندارد. در این موارد، برنامه حیاتی اندروید ممکن است زمان قفل بخشی از حالت بیدار شدن را در برابر محدودیت 3 ساعته محاسبه نکند. به عنوان مثال، اگر برنامه ای در حال پخش صدا برای کاربر باشد، بیدار نگه داشتن دستگاه مزیت واضحی دارد و هیچ راهی برای پخش صدا بدون بیدار نگه داشتن دستگاه وجود ندارد. در آن صورت، زمان قفل بخشی جزئی در برابر حیاتی اندروید حساب نمی شود.
اگر در بیش از 5 درصد از جلسات برنامه در همه دستگاهها در یک دوره 28 روزه، قفلهای جزئی بیش از حد بیدار شوند، پس از اینکه سنجه از نسخه بتا خارج شد، میتواند روی نمایان شدن برنامه شما در Play تأثیر بگذارد.
هنگامی که متوجه شدید که برنامه شما دارای قفل های جزئی بیش از حد است، گام بعدی شما رفع مشکل است.
مشکل را برطرف کنید
از آنجایی که wake lock می تواند باتری دستگاه را تخلیه کند، اگر جایگزینی وجود دارد، نباید از wake lock استفاده کنید. اسناد Choose API مناسب برای بیدار نگه داشتن دستگاه می تواند به شما کمک کند بهترین راه حل را برای برنامه خود پیدا کنید.
اگر نیاز به استفاده از wake lock دارید، بهترین روشهای wake lock را دنبال کنید تا مطمئن شوید که wake lock شما به کارایی دستگاه آسیب نمیزند. به ویژه، مطمئن شوید که هر دستگاهی که به دست می آورید آزاد شده است و قفل را در اسرع وقت آزاد کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Excessive partial wake locks (beta)\n\nPartial wake locks are a mechanism in the [`PowerManager`](/reference/android/os/PowerManager) API that lets\ndevelopers keep the CPU running after a device's display turns off (whether due\nto system timeout or the user pressing the power button). Your app acquires a\npartial wake lock by calling [`acquire()`](/reference/android/os/PowerManager.WakeLock#acquire()) with the [`PARTIAL_WAKE_LOCK`](/reference/android/os/PowerManager#PARTIAL_WAKE_LOCK)\nflag, or by using [other APIs that acquire wake locks](/develop/background-work/background-tasks/awake/wakelock/identify-wls).\nExcessive use of partial wake locks drains the device's battery because it\nprevents the device from entering lower power states. Partial wake locks should\nbe used only when necessary and released as soon as no longer needed.\n\nIf your app uses partial wake locks excessively, you can use the guidance in\nthis page to diagnose and fix the problem.\n\nYour feedback is a crucial part of improving our documentation. Please give us\nyour feedback using the following link:\n\n\n[Give feedback](https://docs.google.com/forms/d/e/1FAIpQLScYkStao0zVsmPay22DGqYEMJSf2Rk3SE3LnPc1lcmLjN1AiQ/viewform?usp=dialog)\n\nDetect the problem\n------------------\n\nAndroid vitals can help you find out when your app's use of partial wake locks\nis excessive.\n\n### Android vitals\n\nAndroid vitals can help improve your app's performance by [alerting you via the\nPlay Console](https://support.google.com/googleplay/android-developer/answer/9844486?) when your app's use of partial wake locks is\nexcessive.\n| **Note:** Tracking of excessive partial wake locks is **currently in beta**. The threshold numbers, relevant app states, and exceptions for behavior that has end-user benefit, are all subject to change. The beta metric does not currently make your app less discoverable on Google Play. Once the metric is out of beta, excessive partial wake lock use may impact app discoverability on Play.\n\nAndroid vitals reports partial wake lock use as **excessive** when **all of the\npartial wake locks**, added together, run for 3 or more hours in 24-hour\nperiod.\n\nAndroid vitals tracks time only if the wake lock is held when the app **is in\nthe background** and **does not have a foreground service**.\n\nAndroid vitals gives some exemptions to partial wake lock usage in scenarios\nwhere there is a clear user benefit of the partial wake lock, and there's no\nbetter way to achieve that result without the partial wake lock. In those cases,\nAndroid vitals might not count the partial wake lock time against the 3-hour\nlimit. For example, if an app is playing audio for the user, there's a clear\nbenefit to keeping the device awake and there's no way to play the audio without\nkeeping the device awake. In that case, the partial wake lock time is not\ncounted against the Android vitals.\n\nIf excessive partial wake locks occur in more than 5% of app sessions across all\ndevices in a 28-day period, it can affect your app's visibility on Play once the\nmetric is out of beta.\n\nOnce you're aware that your app has excessive partial wake locks,\nyour next step is to address the issue.\n\nFix the problem\n---------------\n\nBecause wake locks can drain the device battery, you shouldn't use wake\nlocks if there's an alternative. The\n[Choose the right API to keep the device awake](/develop/background-work/background-tasks/awake)\ndocumentation can help you find the best solution for your app.\n\nIf you do need to use a wake lock, [follow wake lock best practices](/develop/background-work/background-tasks/awake/wakelock/best-practices)\nto make sure your wake locks don't hurt device efficiency. In particular,\nmake sure every device you acquire is released, and release the lock as quickly\nas possible.\n\nAfter fixing the problem in code, you can verify your fixes by using [local\nwake lock debugging tools](/develop/background-work/background-tasks/awake/wakelock/debug-locally).\n\nSee also\n--------\n\n- [Stuck partial wake locks](/topic/performance/vitals/excessive-wakelock)\n- [Wake lock documentation](/develop/background-work/background-tasks/awake/wakelock)\n\nRecommended for you\n-------------------\n\n- Note: link text is displayed when JavaScript is off\n- [Frozen frames](/topic/performance/vitals/render#frozen-frames)\n- [Run benchmarks in Continuous Integration](/topic/performance/benchmarking/benchmarking-in-ci)\n- [Create and measure Baseline Profiles without Macrobenchmark](/topic/performance/baselineprofiles/manually-create-measure)"]]