2013-11-23 6 views
15

प्रश्न NSURLSession और NSURLSessionUploadTask है।आईओएस: क्या ऐप छोड़ने के बल ने NSURLSession का उपयोग करके पृष्ठभूमि अपलोड को अक्षम कर दिया है?

मैं सर्वर पर बड़ी फाइलें अपलोड कर रहा हूं और देखा है कि जब मैं बल एप छोड़ देता हूं तो पूरे पृष्ठभूमि अपलोड को बस बंद हो जाता है। हालांकि, जब अपलोड एक्सकोड/डीबगर के माध्यम से चल रहा है, तब अपलोड शुरू होता है, तो मेरा अपलोड एक्सकोड 'स्टॉप' बटन के माध्यम से चल रहे ऐप को रोकते समय भी को ठीक करता है। मुझे संदेह है कि एक्सकोड का उपयोग करके ऐप छोड़ने वाला बल आईओएस सिस्टम कमांड को सिम्युलेट करता है, न कि उपयोगकर्ता एक्शन।

तो मेरा सवाल यह है कि क्या यह सच है कि आईओएस तुरंत NSURLSessionUploadTask रद्द कर देगा जब उपयोगकर्ता बल ऐप छोड़ देता है ?? किसी कारण से मैं कम से कम ऐप में त्रुटि कॉलबैक की अपेक्षा करता हूं, हालांकि कुछ भी नहीं होता है।

+0

आपने कहा कि एक्सकोड "स्टॉप" बटन के साथ ऐप को रोकने के बाद पृष्ठभूमि कार्य केवल फ़ाइल चलाया गया है, मुझे इस बारे में संदेह है।
मैंने खुद को कोशिश की है लेकिन कोई भाग्य नहीं है, पृष्ठभूमि कार्य रोक दिया गया है। मुझे लगता है कि जब ऐप पृष्ठभूमि में जाता है, तो आईओएस बस इसे निलंबित कर देता है। जब ऐप छोड़ देता है (आईओएस या बल द्वारा उपयोगकर्ता द्वारा छोड़ा गया कोई फर्क नहीं पड़ता), सापेक्ष पृष्ठभूमि कार्य भी बंद हो जाता है। – LeverkusenFan

+0

@LeverkusenFan - मैं पुष्टि कर सकता हूं कि यदि ऐप उपयोगकर्ता द्वारा बलपूर्वक नहीं छोड़ा जाता है तो पृष्ठभूमि कार्य चल रहा होगा। – ymotov

उत्तर

13

अब परीक्षण की एक गुच्छा के बाद मैं पुष्टि कर सकता हूं कि ऐप को पृष्ठभूमि में रखा गया है तो पृष्ठभूमि कार्य ठीक हो जाएगा। हालांकि, यदि उपयोगकर्ता बल मैन्युअल रूप से ऐप को छोड़ देता है, तो आईओएस सभी निर्धारित पृष्ठभूमि कार्यों को रद्द कर देता है। तो अगली बार ऐप लॉन्च होने पर मुझे रद्द किए गए कार्य के त्रुटि कोड के साथ प्रतिनिधि को सभी कॉलबैक मिल रहे हैं।

आशा है कि यह किसी को भी वही चीज़ देखने में मदद करेगा।

+0

धन्यवाद। मैंने निष्कर्ष निकाला कि आईओएस 7.1.2 पर भी। आईओएस 8 पर परीक्षण करेगा। –

+0

क्या यह जारी रहता है यदि एप्लिकेशन बस क्रैश हो जाए? – Lukasz

+0

इसलिए निर्माण करना संभव नहीं है (उदाहरण के लिए एक बड़ी फ़ाइल अपलोड करने वाला एक पृष्ठभूमि कार्य) एक पृष्ठभूमि कार्य जो तब भी चल रहा है जब उपयोगकर्ता हमारे ऐप को सही तरीके से समाप्त करता है :( – Merkurial

2

एप्पल के docs पृष्ठभूमि निष्पादन के बारे में से:

तो कार्य अभी तक समाप्त नहीं हुआ है और प्रणाली अपने अनुप्रयोग समाप्त हो जाता है, सिस्टम स्वचालित रूप से पृष्ठभूमि में कार्यों के प्रबंधन के लिए जारी है। यदि उपयोगकर्ता आपके ऐप को समाप्त करता है, तो सिस्टम किसी लंबित कार्यों को रद्द कर देता है।

संबंधित मुद्दे

 संबंधित मुद्दे