मेरा ऐप पृष्ठभूमि स्थान अपडेट (विशेष रूप से महत्वपूर्ण स्थान निगरानी के साथ) का समर्थन करता है।जब आईओएस ऐप पृष्ठभूमि में लॉन्च किया गया है तो मुझे UI से बचाना चाहिए
क्या मुझे लगता है कि ऐप पृष्ठभूमि में है (application.applicationState == UIApplicationStateBackground
) जब मुझे लगता है कि लोडिंग से UI (नियंत्रकों के माध्यम से) को रोकने की आवश्यकता है?
मेरा इरादा पृष्ठभूमि में भारी यूआई लोडिंग (यह एक बड़ा ऐप) से बचने के लिए है, जो पृष्ठभूमि में मेरे पास मौजूद सीमित समय को वास्तव में स्थान अपडेट का जवाब देने के लिए बर्बाद कर सकता है।
उदाहरण के लिए (ObjC में है, लेकिन सवाल स्विफ्ट के लिए भी है),, मान लीजिए कि मैं कुछ RootViewController
जो initializes और पूरे नियंत्रक/दृश्य पदानुक्रम धारण करते हैं मैं, viewDidLoad
में करना चाहिए:
if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) {
// Root view controller loaded while in background, so doing only background stuff
[self justDoBackgroundStuffWithoutUI];
} else {
// Root view controller loaded normally, so loading normal UI
[self initializeUIAndChildControllers];
}
? या मुझे उन सभी यूआई कार्यों को अनदेखा करने के लिए आईओएस को "भरोसा" करना चाहिए, क्योंकि यह पता होगा कि यह पृष्ठभूमि स्थिति में है?
आप इसे संभालने के लिए आईओएस पर भरोसा कर सकते हैं, यह पृष्ठभूमि स्थिति में यूआई प्रस्तुत नहीं करेगा, जो कि ओएस में बनाया गया है। अंतर्निहित UIKit ढांचा तय करेगा कि एप्लिकेशन को वास्तव में प्रस्तुत करने की आवश्यकता है या नहीं। ध्यान रखें कि व्यू कंट्रोलर के लिए एप्लिकेशन लाइफसाइक्ल इवेंट्स ज्यादातर उपयोगकर्ता इंटरैक्शन के जवाब में होते हैं, एक बार देखने के बाद डिडलोड और देखेंडिडएपियर बाकी चलाते हैं, जब उपयोगकर्ता कुछ करता है, तो वे वास्तव में तब तक नहीं चलते हैं जब ऐप अग्रभूमि में नहीं होता है – Scriptable
दूसरा सोचा तो क्या होगा यदि मेरे नियंत्रक उदाहरण के लिए अपने 'viewDidLoad' पर स्वचालित रूप से कई छवियां डाउनलोड करते हैं - कि, मैं अनुमान लगा रहा हूं, ओएस द्वारा अनदेखा नहीं किया जाएगा। हो सकता है कि 'UIImageView'a प्रस्तुत नहीं किया जाएगा, लेकिन डेटा और' UIImage 'वास्तव में लोड किया जाएगा। – mllm
उस स्थिति में नेटवर्क अनुरोधों को अभी भी पूरा करना चाहिए, लेकिन जब किसी भी शेष कार्यों की पृष्ठभूमि की पृष्ठभूमि होती है तो निलंबित/समाप्त होने से पहले जो कुछ भी कर रहे हैं, उसे पूरा करने के लिए केवल सीमित समय होता है। यह सिर्फ अनिश्चितता से नहीं चल रहा है। – Scriptable