عمليات قفل تفعيل جزئية متوقفة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
قفل التنشيط الجزئي هو آلية في واجهة برمجة التطبيقات
PowerManager
تسمح للمطوّرين بإبقاء وحدة المعالجة المركزية (CPU) تعمل بعد إيقاف شاشة الجهاز
(سواءً بسبب مهلة النظام أو الضغط على زر التشغيل من قِبل المستخدم). يحصل
تطبيقك على قفل تشغيل جزئي من خلال استدعاء
acquire()
مع العلامة
PARTIAL_WAKE_LOCK
، أو باستخدام واجهات برمجة تطبيقات أخرى تحصل على أقفال تشغيل.
يصبح قفل التنشيط الجزئي متوقفًا إذا تم الاحتفاظ به لفترة طويلة أثناء
تشغيل تطبيقك في
الخلفية (لا يظهر أي جزء من تطبيقك للمستخدم). يؤدي هذا الوضع إلى تفريغ
بطارية الجهاز لأنّه يمنع الجهاز من الدخول إلى حالات
استهلاك الطاقة الأقل. يجب عدم استخدام عمليات قفل التنشيط الجزئية إلا عند الضرورة، ويجب إلغاؤها
بمجرد عدم الحاجة إليها.
إذا كان تطبيقك قد فرض قفلًا جزئيًا للتنشيط، يمكنك استخدام الإرشادات الواردة في هذه الصفحة
لتشخيص المشكلة وحلّها.
رصد المشكلة
قد لا تعرف دائمًا أنّ عمليات قفل التنشيط الجزئية في تطبيقك متوقفة.
إذا سبق لك نشر تطبيقك، يمكن أن تساعدك ميزة "مؤشرات Android الحيوية" في إعلامك بالمشكلة.
مؤشرات Android الحيوية
يمكن أن تساعدك "مؤشرات Android الحيوية" في تحسين أداء تطبيقك من خلال تنبيهك عبر
Play Console عندما يُظهر تطبيقك
عمليات قفل جزئي متوقّفة. تسجِّل "مؤشرات Android الحيوية" عمليات قفل التنشيط الجزئية
كعمليات متوقّفة عندما يحدث قفل تنشيط
جزئي لمدة ساعة واحدة على الأقل في الخلفية خلال فترة 24 ساعة.
يُرجى العِلم أنّ عدد جلسات البطارية المعروضة هو مجموع جميع المستخدِمين الذين تم قياسهم
للتطبيق. للحصول على معلومات عن كيفية جمع Google Play لبيانات "مؤشرات Android الحيوية"، يُرجى الاطّلاع على مستندات
Play Console.
بعد معرفة أنّ تطبيقك قد أوقف قفل التنشيط الجزئي،
تتمثل خطوتك التالية في معالجة المشكلة.
حل المشكلة
بما أنّ أقفال التنشيط يمكن أن تستنزف بطارية الجهاز، يجب عدم استخدام أقفال التنشيط
إذا كان هناك بديل. يمكن أن تساعدك مستندات
اختيار واجهة برمجة التطبيقات المناسبة لإبقاء الجهاز في وضع "التشغيل"
في العثور على أفضل حل لتطبيقك.
إذا كنت بحاجة إلى استخدام قفل تنشيط، عليك اتّباع أفضل الممارسات المتعلّقة بقفل التنشيط
للتأكّد من أنّ أقفال التنشيط لا تؤثّر سلبًا في كفاءة الجهاز. وعلى وجه الخصوص،
تأكَّد من إزالة قفل كل جهاز تحصل عليه، وإزالة القفل في أسرع وقت ممكن.
بعد إصلاح المشكلة في الرمز، يمكنك التحقّق من الإصلاحات باستخدام أدوات محلية
لتصحيح أخطاء قفل الاستيقاظ.
انظر أيضًا
أفلام مُقترَحة لك
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Stuck partial wake locks\n\nPartial wake locks are a mechanism in the\n[`PowerManager`](/reference/android/os/PowerManager) API\nthat lets developers keep the CPU running after a device's display turns off\n(whether due to system timeout or the user pressing the power button). Your\napp acquires a partial wake lock by calling\n[`acquire()`](/reference/android/os/PowerManager.WakeLock#acquire())\nwith the\n[`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).\nA partial wake lock becomes *stuck* if it is held for a long time while\nyour app is running in the\nbackground (no part of your app is visible to the user). This condition drains\nthe device's battery because it prevents the device from entering lower power\nstates. Partial wake locks should be used only when necessary and released as\nsoon as no longer needed.\n\nIf your app has a stuck partial wake lock, you can use the guidance in this page\nto diagnose and fix the problem.\n\nDetect the problem\n------------------\n\nYou may not always know that your app's partial wake locks are stuck.\nIf you have already published your app,\nAndroid vitals can help make you aware of the problem.\n\n### Android vitals\n\nAndroid vitals can help improve your app's performance by alerting you via the\n[Play Console](https://play.google.com/console/) when your app is\nexhibiting stuck partial wake locks. Android vitals reports partial wake locks\nas stuck when at least one, hour-long, while in the background, partial wake\nlock occurs in a 24-hour period.\n\nThe number of battery sessions displayed is an aggregate for all measured users\nof the app. For information on how Google Play collects Android vitals data, see\nthe\n[Play Console](https://support.google.com/googleplay/android-developer/answer/7385505)\ndocumentation.\n\nOnce you're aware that your app has stuck 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- [Excessive partial wake locks (beta)](/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)"]]