अटके हुए पार्शियल वेक लॉक

पार्शियल वेक लॉक, PowerManager API में मौजूद एक ऐसा तरीका है जिसकी मदद से डेवलपर, डिवाइस का डिसप्ले बंद होने के बाद भी सीपीयू को चालू रख सकते हैं. डिसप्ले, सिस्टम टाइमआउट की वजह से बंद हुआ हो या उपयोगकर्ता ने पावर बटन दबाया हो, इससे कोई फ़र्क़ नहीं पड़ता. आपका ऐप्लिकेशन, PARTIAL_WAKE_LOCK फ़्लैग के साथ acquire() को कॉल करके या वेक लॉक हासिल करने वाले अन्य एपीआई का इस्तेमाल करके, आंशिक वेक लॉक हासिल करता है. अगर आपका ऐप्लिकेशन बैकग्राउंड में चल रहा है और लंबे समय तक पार्शियल वेक लॉक चालू रहता है, तो यह बंद नहीं होता. बैकग्राउंड में चलने का मतलब है कि ऐप्लिकेशन का कोई भी हिस्सा उपयोगकर्ता को नहीं दिख रहा है. इस स्थिति में, डिवाइस की बैटरी खत्म हो जाती है. ऐसा इसलिए होता है, क्योंकि डिवाइस कम बैटरी इस्तेमाल करने वाली स्थितियों में नहीं जा पाता. पार्शियल वेक लॉक का इस्तेमाल सिर्फ़ तब किया जाना चाहिए, जब इसकी ज़रूरत हो. साथ ही, जब इसकी ज़रूरत न हो, तो इसे तुरंत बंद कर देना चाहिए.

अगर आपके ऐप्लिकेशन में पार्शियल वेक लॉक की समस्या आ रही है, तो इस पेज पर दिए गए निर्देशों का इस्तेमाल करके समस्या का पता लगाया जा सकता है और उसे ठीक किया जा सकता है.

समस्या ठीक करना

वेक लॉक की वजह से डिवाइस की बैटरी खत्म हो सकती है. इसलिए, अगर कोई दूसरा विकल्प उपलब्ध है, तो वेक लॉक का इस्तेमाल नहीं करना चाहिए. डिवाइस को चालू रखने के लिए सही एपीआई चुनना लेख पढ़कर, आपको अपने ऐप्लिकेशन के लिए सबसे सही समाधान मिल सकता है.

अगर आपको वेक लॉक का इस्तेमाल करना ही है, तो वेक लॉक से जुड़े सबसे सही तरीके अपनाएं, ताकि यह पक्का किया जा सके कि वेक लॉक की वजह से डिवाइस की परफ़ॉर्मेंस पर असर न पड़े. खास तौर पर, यह पक्का करें कि आपने जितने भी डिवाइस लिए हैं वे सभी रिलीज़ हो गए हों. साथ ही, उन्हें जल्द से जल्द रिलीज़ करें.

कोड में समस्या ठीक करने के बाद, लोकल वेक लॉक डीबग करने वाले टूल का इस्तेमाल करके, यह पुष्टि की जा सकती है कि समस्या ठीक हो गई है.

इन्हें भी देखें