क्या iPhone एप्लिकेशन में UIApplicationDidEnterBackgroundNotification
के उपयोग या हम इसे कैसेUIApplicationDidEnterBackgroundNotification
उत्तर
से लाभ ले सकते हैं सेब documentation से।
प्रतिनिधि को बताता है कि एप्लिकेशन अब पृष्ठभूमि में है।
- (void)applicationDidEnterBackground:(UIApplication *)application
पैरामीटर आवेदन सिंगलटन आवेदन उदाहरण।
चर्चा आईओएस 4.0 में और बाद में, इस विधि applicationWillTerminate:
विधि है जब उपयोगकर्ता एक आवेदन पृष्ठभूमि निष्पादन का समर्थन करता है कि इस्तीफा के बजाय कहा जाता है। साझा संसाधनों को जारी करने, उपयोगकर्ता डेटा को सहेजने, टाइमर को अमान्य करने और आपके आवेदन को अपने वर्तमान स्थिति में बाद में समाप्त होने पर पुनर्स्थापित करने के लिए पर्याप्त एप्लिकेशन स्थिति की जानकारी संग्रहीत करने के लिए इस विधि का उपयोग करना चाहिए। आपको अपने एप्लिकेशन के उपयोगकर्ता इंटरफ़ेस में अपडेट अक्षम करना चाहिए और कुछ प्रकार के साझा सिस्टम संसाधनों (जैसे उपयोगकर्ता के संपर्क डेटाबेस) का उपयोग करने से बचें। यह भी जरूरी है कि आप पृष्ठभूमि में ओपनजीएल ईएस का उपयोग करने से बचें।
इस विधि के आपके कार्यान्वयन में कोई कार्य करने और वापस करने के लिए लगभग पांच सेकंड हैं। यदि आपको कोई अंतिम कार्य करने के लिए अतिरिक्त समय की आवश्यकता है, तो आप beginBackgroundTaskWithExpirationHandler:
पर कॉल करके सिस्टम से अतिरिक्त निष्पादन समय का अनुरोध कर सकते हैं। अभ्यास में, आपको जितनी जल्दी हो सके applicationDidEnterBackground:
से वापस जाना चाहिए। यदि समय समाप्त होने से पहले विधि वापस नहीं आती है तो आपका आवेदन समाप्त हो जाता है और स्मृति से शुद्ध हो जाता है।
इस विधि से बाहर निकलने से पहले आपको अपने उपयोगकर्ता इंटरफ़ेस को समायोजित करने से संबंधित कोई भी कार्य करना चाहिए, लेकिन अन्य कार्यों (जैसे राज्य को सहेजना) को एक समवर्ती प्रेषण कतार या आवश्यकतानुसार माध्यमिक थ्रेड में स्थानांतरित किया जाना चाहिए। चूंकि यह संभवतः applicationDidEnterBackground:
में शुरू होने वाले किसी भी पृष्ठभूमि कार्य को तब तक नहीं चलाया जाएगा जब तक कि उस विधि से बाहर निकलने के बाद, आपको उन कार्यों को शुरू करने से पहले अतिरिक्त पृष्ठभूमि निष्पादन समय का अनुरोध करना चाहिए। दूसरे शब्दों में, पहले beginBackgroundTaskWithExpirationHandler:
पर कॉल करें और फिर कार्य को प्रेषण कतार या माध्यमिक थ्रेड पर चलाएं।
एप्लिकेशन भी UIApplicationDidEnterBackgroundNotification
अधिसूचना पोस्ट करता है, साथ ही यह रुचि रखने वाली वस्तुओं को संक्रमण का जवाब देने का मौका देने के लिए इस विधि को कॉल करता है।
इस अधिसूचना का अर्थ है कि उपयोगकर्ता आपके ऐप को आईफोन 4 पर "छोड़ दें" - ऐसा तब होता है जब फ़ोन कॉल या टेक्स्ट संदेश आता है और उपयोगकर्ता बाधा (उत्तर/उत्तरों) स्वीकार करता है, या जब उपयोगकर्ता ने होम बटन दबाया है ।
मैं इतने पर इस लिंक है कि सभी राज्यों के बीच बातचीत से पता चलता है, और उचित सूचनाएं मिली: http://www.drobnik.com/touch/2010/07/understanding-ios-4-backgrounding-and-delegate-messaging/
आप applicationDidEnterBackground लागू कर सकते हैं के रूप में @Antwan (सुझाव आपके UIApplicationDelegate कक्षा में इस अधिसूचना के उपयोग करने के लिए - कि मुख्य वर्ग)।
वैकल्पिक रूप से आप अपने कोड में एक अधिसूचना हैंडलर जहां भी आप चाहते/जरूरत सेट कर सकते हैं:
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(handleEnteredBackground:)
name: UIApplicationDidEnterBackgroundNotification
object: nil];
गुड लक!
ओडेड।
माइनर स्पष्टीकरण, 'UIApplicationDidEnterBackgroundNotification' _not_, कहा जाता है जब एक फोन कॉल में आता है।' UIApplicationWillResignActiveNotification' होगा, हालांकि। आप कॉल का उत्तर है, तो उसके बाद ही 'तैनात किया UIApplicationDidEnterBackgroundNotification' होगा। – Rob