मेरे पास एक ऐसी सेवा है जो डाउनलोड थ्रेड को जन्म देती है जो कभी-कभी बड़ी फ़ाइलों को डाउनलोड करती है। मुझे एहसास हुआ कि जैसे ही फोन सो गया, डाउनलोड थ्रेड काफी धीमा हो जाएगा, फिर रुकें।PARTIAL_WAKE_LOCK बनाम SCREEN_DIM_WAKE_LOCK डाउनलोड थ्रेड
स्पष्ट उपाय, एक wakelock। तो मुझे लगता है कि सीपीयू डाउनलोड को प्रोसेस करने के लिए, केवल partial_wake_lock प्राप्त करना ठीक होगा। यह काम नहीं करता है, वही व्यवहार, डाउनलोड धीमा हो जाता है और फिर स्क्रीन बंद होने पर बंद हो जाता है।
फिर मैंने screen_dim_wake_lock की कोशिश की। इस बार, स्क्रीन (मंद) पर रुक गई, और जब तक यह पूरा नहीं हुआ तब तक डाउनलोड पूर्ण हो गया, वाकेलॉक जारी किया गया, और फिर फोन सो गया।
मेरा सवाल यह है कि, मैं part_dim_wake_lock के दौरान एक partial_wake_lock को पकड़ते समय अपना धागा क्यों नहीं चला सकता? क्या इन 2 के बीच अंतर के बारे में कुछ अनियंत्रित व्यवहार है? ऐसा इसलिए है क्योंकि मैं शायद यूआई थ्रेड पर नहीं चल रहा हूं?
संपादित करें:
मैंने एक वाईफिलॉक जोड़ा। वाईफाई सो नहीं जाता है, लेकिन मेरा धागा अभी भी मर जाता है। अगर कुछ अन्य प्रक्रिया प्रणाली को जगाती है, तो डाउनलोड सामान्य गति पर जारी रहेगा, फिर फिर धीमा हो जाएगा। अगर मैं फोन उठाता हूं, तो यह स्क्रीन की गति से एक बार फिर धीमा होने की तुलना में सामान्य गति पर जारी रहेगा। ऐसा लगता है कि थ्रेड सिस्टम द्वारा पृष्ठभूमि में धकेल रहा है। मुझे आश्चर्य है कि मैं इसे रोक सकता हूं।
इस के साथ कहीं भी जाओ? जब तक मैं SCREEN_DIM_WAKE_LOCK का उपयोग नहीं करता तब तक मुझे नेटवर्क को स्वभावपूर्ण होने के साथ समान समस्याएं आ रही हैं। आंशिक वेक-लॉक बस पर्याप्त नहीं है - न ही जब वाईफ़ाई लॉक के साथ मिलकर ... – barkside