2012-06-22 13 views
7

मैं अपने अनुप्रयोग में एक NSRunLoop एक टाइमर से जुड़ा हैजब ऐप पृष्ठभूमि में आता है और लौटाता है तो मेरे NSRunLoop और टाइमर का क्या होता है?

NSTimer *updateTimer = [NSTimer scheduledTimerWithTimeInterval:300 target:self selector:@selector(onUpdateTimer) userInfo:nil repeats:YES]; 
[[NSRunLoop mainRunLoop] addTimer:updateTimer forMode:NSRunLoopCommonModes]; 

जब एप्लिकेशन को पृष्ठभूमि में चला जाता है, क्या इस runloop का क्या होगा? क्या यह गायब हो जाता है, जिसका अर्थ है कि मुझे इसे applicationDidBecomeActive: में पुन: बनाना चाहिए?

उत्तर

8

आपको अपने टाइमर को रोकना चाहिए जब आपका ऐप निलंबित हो और -applicationDidBecomeActive: में उन्हें पुनरारंभ करें। Responding to Interruptions में "जब कोई बाधा उत्पन्न होती है" देखें। आपको रन लूप के बारे में चिंता करने की ज़रूरत नहीं है, हालांकि - ओएस उस हिस्से का ख्याल रखेगा।

+0

ठीक है, इसलिए मुझे रनलोप मैन्युअल रूप से रोकने की आवश्यकता नहीं है। क्या मुझे एप्लिकेशन पर एक बनाना होगाडिडबैकएक्टिव: एक ही कोड का उपयोग कर? – DGund

+1

नहीं। इसे आजमाएं - आपका रन लूप ठीक होना चाहिए। – Caleb

+0

ध्यान रखें कि निलंबित होने और आवेदन करने के लिए कॉल करने के लिए कॉल करेंडबैकएक्टिव को एक के लिए एक को संतुलित नहीं किया जाता है, इसलिए कुछ बुद्धिमानी के बिना एप्लिकेशन में बेवकूफ चीजें कतारबद्ध न करें। – Gruntcakes

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

  • कोई संबंधित समस्या नहीं^_^