यदि आप अपने iOS एप्लिकेशन के भीतर पृष्ठभूमि में टाइमर चलाना चाहते हैं, तो Apple startBackgroundTaskWithExpirationHandler विधि प्रदान करता है, आप उसी https://developer.apple.com/documentation/uikit/uiapplication/1623031-beginbackgroundtaskwithexpiration के बारे में अधिक पढ़ सकते हैं।
हम टाइमर को बैकग्राउंड में चलाने के लिए अपना कोड लिखने के लिए उसी का उपयोग करेंगे।
तो चलिए शुरू करते हैं।
चरण 1 − ओपन एक्सकोड → सिंगल व्यू एप्लीकेशन → चलो नाम बैकग्राउंड टाइमर है।
चरण 2 - AppDelegate.swift खोलें और applicationDidEnterBackground विधि के तहत नीचे दिया गया कोड लिखें।
backgroundTaskIdentifier = UIApplication.shared.beginBackgroundTask(expirationHandler: { UIApplication.shared.endBackgroundTask(self.backgroundTaskIdentifier!) }) _ = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.doSomething), userInfo: nil, repeats: true)
चरण 3 - नया फ़ंक्शन लिखें कुछ करें ()
@objc func doSomething() { print("I'm running") }
आखिरकार आपका कोड नीचे जैसा दिखना चाहिए
func applicationDidEnterBackground(_ application: UIApplication) { backgroundTaskIdentifier = UIApplication.shared.beginBackgroundTask(expirationHandler: { UIApplication.shared.endBackgroundTask(self.backgroundTaskIdentifier!) }) _ = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.doSomething), userInfo: nil, repeats: true) } @objc func doSomething() { print("I'm running") }
एप्लिकेशन चलाएँ
जब एप्लिकेशन पृष्ठभूमि में जाता है तो हम "मैं चल रहा हूं" प्रिंट कर रहे हैं। जब ऐप बैकग्राउंड में चला जाता है तो "मैं चल रहा हूं" कंसोल पर प्रिंट होना शुरू हो जाएगा। होम बटन पर टैप करें और टेस्ट करें। हालाँकि आप अपना टाइमर अधिकतम 3 मिनट तक चला सकते हैं जब आपका ऐप Apple दस्तावेज़ीकरण और परीक्षण में निर्दिष्ट पृष्ठभूमि में हो।
इस एप्लिकेशन को चलाते समय, एप्लिकेशन को पृष्ठभूमि में बनाएं और 3 मिनट तक प्रतीक्षा करें, आप देखेंगे कि 3 मिनट के बाद "मैं चल रहा हूं" प्रिंट नहीं होगा। अब एप्लिकेशन को अग्रभूमि में लाएं और आप देखेंगे कि "मैं चल रहा हूं" ने प्रिंट करना शुरू कर दिया है।