2009-02-26 12 views
31

अपने आईफोन एप्लिकेशन में किसी भी स्थान पर एप्लिकेशन WillResignActive जैसी किसी ईवेंट की सदस्यता लेने के लिए कोड क्या है?कहीं से भी एप्लिकेशन WillResignActive पर प्रतिक्रिया कैसे करें?

[अद्यतन]

मुझे मेरे सवाल का अलग तरीके से व्यक्त करते हैं। मैं अपने आवेदन प्रतिनिधि में इसका जवाब नहीं देना चाहता हूं, बल्कि इस घटना को किसी अन्य वर्ग से सुनना चाहता हूं। क्या यह संभव है या मुझे इस कार्यक्रम को प्रतिनिधि प्रतिनिधि से संबंधित वर्ग में पास करने की आवश्यकता है?

उत्तर

71

ऐसा लगता है कि आप इस कोड को देख रहे हैं।

- (void) applicationWillResign { 
    NSLog(@"About to lose focus"); 
} 

- (void) myMethod { 
    [[NSNotificationCenter defaultCenter] 
     addObserver:self 
     selector:@selector(applicationWillResign) 
     name:UIApplicationWillResignActiveNotification 
     object:NULL]; 
} 
+10

एक भी कुछ बिंदु पर पर्यवेक्षक को निकाल देना चाहिए, आमतौर पर dealloc में: \t [[NSNotificationCenter defaultCenter] removeObserver: स्वयं]; – LearnCocos2D

+0

@ LearnCocos2D हालांकि क्यों? – Houssni

+1

NSNotificationCenter एक अस्वीकृत पर्यवेक्षक को एक संदेश भेजने में क्रैश हो सकता है। दस्तावेज़ों से: ["निकालना ऑब्सर्वर का आह्वान करना सुनिश्चित करें: नाम: ऑब्जेक्ट: अधिसूचना से पहले ऑब्सर्वर या addObserver में निर्दिष्ट कोई ऑब्जेक्ट: चयनकर्ता: नाम: ऑब्जेक्ट: हटा दिया गया है।"] (Https://developer.apple.com/library/mac /documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/index.html#//apple_ref/occ/instm/NSNotificationCenter/addObserver:selector:name:object :) – LearnCocos2D

0

आपका विषय और प्रश्न थोड़ा अलग चीज़ें पूछ रहे हैं।

आपका आवेदन एप्लिकेशन WillResignActive के साथ स्वचालित रूप से एप्लिकेशनWillTerminate के साथ प्राप्त होगा। कोई सदस्यता आवश्यक नहीं है, बस अपने ऐप में फ़ंक्शन को लागू करें।

प्रतिक्रिया देने के तरीके के रूप में, यह एप्लिकेशन पर है। जबकि आप कुछ भी नहीं करना चुन सकते हैं तो अनुशंसित व्यवहार यह है कि आप किसी भी गैर-महत्वपूर्ण कार्यक्षमता को समाप्त या धीमा करते हैं। जैसे यदि आप एक गेम थे तो आप डिस्प्ले को अपडेट करना बंद कर देंगे और/या गेम को रोक देंगे।

4

नीचे दी गई विधि को लागू करें आपके आवेदन प्रतिनिधि में:

-(void)applicationWillResignActive:(UIApplication *)application 

यह आपको प्रतिक्रिया करने के लिए जब आवेदन निष्क्रिय हो जाता है की अनुमति देता है - जब यह मामला है, यह निष्पादित हो रहा है, लेकिन आने वाली घटनाओं भेजने नहीं। ऐसा होता है, उदाहरण के लिए, जब ओवरले विंडो पॉप अप हो जाती है या डिवाइस लॉक हो जाता है।

इससे पहले कि यह निष्क्रिय हो जाए, एप्लिकेशन भी यूआईपीप्लिकेशंस विल्लरसिग्निएक्टिव नोटिफिकेशन पोस्ट करता है।

applicationWillResignActive:

प्रतिनिधि है कि आवेदन निष्क्रिय हो जाएगा बताता है

11

विधि आप के बारे में बात कर रहे हैं के लिए दस्तावेज़ पर एक नजर डालें। यह विधि वैकल्पिक है।

- (void)applicationWillResignActive:(UIApplication *)application 

[...]

चर्चा

[...]

से ठीक पहले यह निष्क्रिय हो जाता है, आवेदन भी एक UIApplicationWillResignActiveNotification पोस्ट करता है।

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