मेरा ऐप UIBackgroundMode का उपयोग करता है, यानी आईओएस द्वारा इसे फिर से लॉन्च किया जाता है जब ऐप सक्रिय नहीं होने पर भी ब्लूटूथ घटनाएं होती हैं। इसलिए आईओएस द्वारा पृष्ठभूमि कतार पर ब्लूटूथ इवेंट भेजे जाते हैं (कतार मेरे द्वारा निर्दिष्ट है)।ऐप पृष्ठभूमि में पुन: लॉन्च होने पर मुख्य कतार प्रेषित हो जाती है?
कर सकते हैं मैं तथापि प्रेषण कोड वापस मुख्य कतार में, यानी
DispatchQueue.main.async { }
(स्विफ्ट)
dispatch_async(dispatch_get_main_queue(), ^{ })
(ऑब्जेक्टिव-सी)
और कहा कि अपनी दौड़ पाश चल रहा है मान लेते हैं, वह यह है कि मेरी ब्लॉक प्रेषित हो जाते हैं? या पृष्ठभूमि मोड में निलंबित मुख्य कतार है और इस प्रकार मुझे इसे प्रेषण ब्लॉक जोड़ने से बचना चाहिए?
क्या आपने ऐसा करने की कोशिश की है। –
मैंने एक प्रयोग किया जहां आईओएस मुख्य लूप चलाने के लिए प्रतीत होता है क्योंकि ऐप को पृष्ठभूमि मोड में लॉन्च होने पर ब्लॉक निष्पादित किया जाता है। हालांकि मैं यह नहीं मान सकता कि आईओएस _always_ इस तरह व्यवहार करेगा। यदि यह मुख्य लूप को जारी रखना जारी रखेगा, तो यह मेरे ऐप के लिए चीजों को अधिक आसान बना देगा क्योंकि तब मुझे थ्रेड सिंक्रनाइज़ेशन की आवश्यकता नहीं है क्योंकि जब आवश्यक हो तो मैं मुख्य कतार में भेजता हूं। –