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

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

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

समस्या का पता लगाना

ऐसा हो सकता है कि आपको हमेशा यह पता न हो कि आपके ऐप्लिकेशन के वेक लॉक अटके हुए हैं. अगर आपने अपना ऐप्लिकेशन पहले ही पब्लिश कर दिया है, तो 'Android की ज़रूरी जानकारी' की मदद से, आपको समस्या के बारे में पता चल सकता है.

Android की ज़रूरी जानकारी

'Android की ज़रूरी जानकारी' सुविधा, आपके ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाने में मदद कर सकती है. इसके लिए, यह Play Console के ज़रिए आपको सूचना देती है कि आपका ऐप्लिकेशन, आंशिक रूप से चालू रहने वाले वेक लॉक की समस्या से जूझ रहा है. 'Android की ज़रूरी जानकारी' में, पार्शियल वेक लॉक के ठीक से काम न करने की जानकारी तब दी जाती है, जब बैटरी सेशन के दौरान, बैकग्राउंड में कम से कम एक घंटे तक पार्शियल वेक लॉक चालू रहता है.

बैटरी सेशन की परिभाषा, प्लैटफ़ॉर्म के वर्शन पर निर्भर करती है.

  • Android 10 में, बैटरी सेशन में इस बात की पूरी जानकारी होती है कि दिए गए 24 घंटों में, डिवाइस की बैटरी कितनी बार चार्ज की गई है. बैटरी रिपोर्ट में, दो बार बैटरी चार्ज होने के बीच के समय की जानकारी होती है. इस रिपोर्ट में जानकारी तब ही शामिल होती है, जब बैटरी को 20% से कम से लेकर 80% से ज़्यादा तक या किसी भी वैल्यू से लेकर 100% तक चार्ज किया जाता है.
  • Android 11 में, बैटरी सेशन 24 घंटे की तय अवधि होती है.

बैटरी सेशन की दिखाई गई संख्या, ऐप्लिकेशन के उन सभी उपयोगकर्ताओं के लिए एक साथ इकट्ठा की गई है जिनकी परफ़ॉर्मेंस का आकलन किया गया है. Google Play, Android की ज़रूरी जानकारी का डेटा कैसे इकट्ठा करता है, इस बारे में जानने के लिए Play Console के दस्तावेज़ देखें.

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

समस्या ठीक करें

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

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

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