मैंने एक AsyncTask कि मैं गतिविधि के onPause जीवन चक्र घटना में बंद कर दिया है, तो यह नहीं चलता है जब किसी एप्लिकेशन को छोड़ देता है, लेकिन यह इस के बावजूद चलती है। मैंने कुछ ट्रेसिंग जोड़ा और यह स्निपेट समस्या दिखाता है।एंड्रॉइड AsyncTask रद्द होने पर नहीं रुक जाएगा, क्यों?
Trace.d(TAG,"Task state: " + myTask.getStatus());
myTask.cancel(true);
Trace.d(TAG,"Task state: " + myTask.getStatus());
आउटपुट:
Task state: RUNNING
Task state: RUNNING
क्यों रद्द किया जाता है() कार्य की स्थिति पर कोई असर नहीं होने विधि? मुझे लगता है कि दस्तावेज़ों का कहना है कि रद्द करने का तरीका कार्य को रोकने के लिए "प्रयास" करेगा, लेकिन किस परिस्थिति में यह असफल रहेगा? कार्य निश्चित रूप से चल रहा है क्योंकि यह हर दस सेकंड में लॉग आउटपुट आउटपुट कर रहा है, और जैसा कि आप ऊपर देख सकते हैं इसकी स्थिति को चलने के रूप में वापस कर दिया गया है।
अद्यतन: मैंने मुझे isCancelled() राज्य को दिखाने के लिए ट्रेसिंग भी जोड़ा और यह बदलता है। तो रद्द करने के लिए कॉल (सत्य) रद्द किए गए राज्य को गलत से सच में बदल रहा है, लेकिन स्पष्ट रूप से स्थिति पर कोई प्रभाव नहीं पड़ता है, या धागे को रोकता है।
वहाँ अपने कार्य के अंदर पाश के लिए एक तरह से जाँच करने के लिए काम रोक दिया गया है या नहीं, और बस से बाहर निकलने के पाश है? –
रद्द करने से वापसी मूल्य क्या है? क्या यह आपको बताता है कि इसे रद्द कर दिया? –
@ जोएल हाँ, मैं ऐसा कर सकता हूं, लेकिन जैसा कि मैं अन्य स्थानों पर रद्द() विधि का उपयोग करता हूं, मैं समझना चाहता हूं कि यह ऐसा क्यों नहीं कर रहा है जो मैं इसे –