2013-01-03 30 views
12

स्थिति समाप्त हो जाती है:कॉलिंग नहीं किया गया है अगर पृष्ठभूमि कार्य

मैं छविपिकर का उपयोग कर एक बड़ा वीडियो चुन रहा हूं। स्पष्ट रूप से पिकर को वीडियो को संपीड़ित करने में थोड़ा समय लगेगा। तो उपयोगकर्ता अनुभव को कम करने के लिए मैंने इसके लिए पृष्ठभूमि कार्य सक्षम कर दिया है।

उपयोगकर्ता एक वीडियो का चयन और और घर बटन को टैप करते हैं, तो आवेदन पृष्ठभूमि में चला जाता है और अगले 600 सेकेंड के लिए वीडियो को संपीड़ित करने के लिए जारी:

अब यहाँ मुद्दा आता है। और पृष्ठभूमि कार्य समाप्त हो जाता है। समाप्ति हैंडलर में मैंने अपना पृष्ठभूमि कार्य बंद कर दिया है।

अब उपयोगकर्ता पृष्ठभूमि समाप्ति

- (void)applicationDidBecomeActive:(UIApplication *)application 

के बाद एप्लिकेशन शुरू करने जाता है तो लागू किया जा रहा है। क्या कोई मुझे समझा सकता है कि ऐसा क्यों होता है?

उत्तर

0

- (शून्य) applicationDidBecomeActive: (UIApplication) आवेदन

इस विधि केवल बुलाया ही एप्लिकेशन sate सक्रिय राज्य को निष्क्रिय अवस्था से बदला गया है। क्या यह जानना संभव है कि वीडियो पिकिंग समाप्त हो गई है या नहीं? यदि यह संभव है तो बस इसे स्टोर करें। और जब उपयोगकर्ता ऐप पर फिर से आता है। बस आवश्यक कार्यक्षमता को आग लगाना।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। लेकिन मुझे यह पता है। मुझे यह जानने की ज़रूरत है कि ऐप को उपयोगकर्ता एकीकरण प्राप्त करने के बाद भी उस विधि को क्यों नहीं कहा जाता है। धन्यवाद। – Deepukjayan

+0

* एकीकरण = बातचीत – Deepukjayan

0

क्या आप विधि applicationDidFinishLaunching पर लॉग स्टेटमेंट जोड़ने का प्रयास कर सकते हैं? उपयोगकर्ता इसे खोलने से पहले ऐप को समाप्त या क्रैश कर सकता है।

इसके अलावा, मुझे लगता है कि ऐप को वर्तमान पार्सिंग संदर्भ को सहेजना सही तरीका है जब ऐप को applicationDidFinishLaunching जैसे सिग्नल प्राप्त होते हैं और जब ऐप पार्सिंग फिर से शुरू होता है। चूंकि कोई उपयोगकर्ता मैन्युअल रूप से ऐप बंद कर सकता है।

+0

इसे आज़माएगा। – Deepukjayan

1

जब पृष्ठभूमि कार्य समाप्त हो जाएंगे, तो आपका ऐप वास्तव में बंद हो जाएगा! तो यह फिर से सक्रिय नहीं हो रहा है, यह लॉन्च हो रहा है।

आपको अपने समाप्ति हैंडलर में सामान/या जब आपका पृष्ठभूमि कार्य सफलतापूर्वक समाप्त हो जाता है। दोनों स्थितियां, आपको पृष्ठभूमि_टस्क को अमान्य के रूप में सेट करने की आवश्यकता है।

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

मुझे लगता है कि आप इसे जानते हैं, लेकिन हो सकता है कि आप अपनी Info.plist फ़ाइल में मल्टीटास्क गुणों को याद कर रहे हों, इसलिए आपका ऐप पृष्ठभूमि कार्यों को आपकी अपेक्षा के अनुसार स्वीकार नहीं कर रहा है।