2010-12-01 9 views
8

आधार के रूप में ऐप्पल के ईएडेमो का उपयोग करके मैं ईएसीएफ़रीज पर पृष्ठभूमि के प्रभाव को समझने की कोशिश कर रहा हूं।पृष्ठभूमि के दौरान EAAccessory/EASession Tardown

जब मुझे कनेक्ट नॉटिफिकेशन प्राप्त होता है, तो मुझे एक्सेसरी मिलती है, प्रोटोकॉल की जांच करें और स्ट्रीम प्राप्त करें। धाराओं के साथ मैंने प्रतिनिधि सेट किया, रनलूप पर शेड्यूल किया, और

वर्तमान में जब मैं पृष्ठभूमि में जाता हूं तो मैं इसे सब नीचे फाड़ देता हूं। मैंने जो कुछ किया वह सब वापस कर दिया और सभी वस्तुओं को छोड़ दिया।

मैं यह टियरडाउन एक डीड डिस्कनेक्ट पर भी करता हूं।

प्रविष्टि पर, मुझे हमेशा एक कनेक्शन कनेक्ट नहीं होता है इसलिए मैं कनेक्ट की गई सूची सूची चलाता हूं और उचित उपकरणों की जांच करता हूं।

- = - = - = -

ईए डेमो सेट और एक दृश्य पर सत्र नीचे आँसू तो हम नहीं दिख रहा है कि क्या वहाँ पृष्ठभूमि हठ।

ईए डेमो कोड ऐसा लगता है कि आप फाड़ सकते हैं और जब तक डिवाइस स्वयं डिस्कनेक्ट नहीं हो जाता है तब तक वापस जा सकते हैं।

सत्र और डिवाइस हालांकि कभी-कभी एक राज्य में आते हैं जब आईओएस डिवाइस सो गया है या ऐप को पृष्ठभूमि में डाल दिया गया है और डिवाइस डेटा को स्वीकार करना बंद कर देगा या बदतर स्ट्रीम से डेटा को डेटा से बाहर खींचना बंद कर देगा कि धारा भर जाती है।


प्रश्न: backgrounding उपयोग करते समय, मुझे लगता है कि सक्रिय है एक सत्र/सहायक फाड़ नहीं करना चाहिए जब तक कि मैं वास्तव में एक didDisconnect सूचना मिलती है। इसके साथ में मुझे लगता है कि सत्र और सहायक संरचनाएं (और शायद धाराएं) पृष्ठभूमि में जीवित रहेंगी?

+0

क्या आपने इस पर कोई प्रगति की है? मैं इसी तरह के मुद्दे से निपट रहा हूं। धन्यवाद। – westsider

उत्तर

3

बाहरी सहायक ढांचे के साथ मेरा अनुभव यह है कि इसे मजबूती के मामले में शुरुआत में खराब तरीके से डिजाइन किया गया था। iOS 4.0 तक, कई सामान से कनेक्ट करने की कोशिश कर रहा यह त्रुटि संदेश प्राप्त होते हैं:

Cannot use accessory. Only one accessory can be in use at a time. 

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

मैं टियरडाउन करने और उत्सर्जन के उदाहरणों को फिर से बनाने की कोशिश कर रहा हूं और यह असफल रहा है। अब मैं पूरे पृष्ठभूमि/अग्रभूमि संक्रमण के दौरान जगह को छोड़ने की कोशिश करने जा रहा हूं। मेरी एक चिंता यह है कि पृष्ठभूमि में रहते हुए मेरा ऐप EAAccessoryDidDisconnectNotification और EAAccessoryDidConnectNotification अधिसूचनाएं प्राप्त नहीं करेगा।

+2

मेरी समझ यह है कि [डिस्क | सी] कनेक्ट किया गया था नोटिफिकेशन अभिभावक रैपर प्रक्रिया द्वारा कैश किया जाता है जो पृष्ठभूमि को नियंत्रित करता है। हमने पूरी तरह से EAAccMgr सूची से पूछताछ बंद कर दी है क्योंकि यह सिंक से बाहर निकलता है। हम पूरी तरह से अधिसूचनाओं पर भरोसा करते हैं। –

+2

ऐप पृष्ठभूमि में प्रवेश करने के तुरंत बाद मुझे EAAccessoryDidDisconnectNotification मिलता है। – iter

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