यदि आप अपने iOS एप्लिकेशन में बैकग्राउंड में टाइमर चलाना चाहते हैं, तो Apple beginBackgroundTaskWithExpirationHandler मेथड प्रदान करता है, आप इसके बारे में यहाँ और पढ़ सकते हैं: https://developer.apple.com/documentation/uikit/uiapplication/1623031-beginbackgroundtaskwithexpiration
हम बैकग्राउंड में टाइमर चलाने के लिए अपने कोड को लिखने के लिए उसी का उपयोग करेंगे।
शुरुआत करते हैं
चरण 1: प्रोजेक्ट बनाएं
Xcode खोलें → Single View Application → नाम दें "BackgroundTimer"
चरण 2: AppDelegate.swift में कोड जोड़ें
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: doSomething() फंक्शन लिखें
@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")
}
एप्लिकेशन चलाएं
यहां हम ऐप के बैकग्राउंड में जाने पर "I'm running" प्रिंट कर रहे हैं। जब ऐप बैकग्राउंड में जाता है तो कंसोल पर "I'm running" प्रिंट होना शुरू हो जाएगा। होम बटन दबाएं और टेस्ट करें। हालांकि Apple डॉक्यूमेंटेशन में निर्दिष्ट और टेस्ट किए अनुसार जब आपका ऐप बैकग्राउंड में होता है तो आप अधिकतम 3 मिनट तक अपना टाइमर चला सकते हैं।
इस एप्लिकेशन को चलाते समय, एप्लिकेशन को बैकग्राउंड में करें और 3 मिनट तक प्रतीक्षा करें, आप देखेंगे कि 3 मिनट के बाद "I'm running" प्रिंट नहीं होगा। अब एप्लिकेशन को फोरग्राउंड में लाएं और आप देखेंगे कि "I'm running" फिर से प्रिंट होना शुरू हो गया।
