I am trying to keep the iOS app in active state for more than 10 mins when it enters in background state.
How can I implement this.
Tasks are under a strict time limit, and typically get about 600 seconds (10 minutes) of processing time after an application has moved to the background on iOS 6, and less than 10 minutes on iOS 7+.
The Background Fetching will NOT happen in your app after the user has killed it in the multitasking UI. This is by design.
See "Background Execution" section of the iPhoneAppProgrammingGuide. In short, your app must be one of these types:
And you must add to the Info.plist as follows: Add the UIBackgroundModes key to your Info.plist file and set its value to an array containing one or more of the following strings:
Note that part of the review process will be checking to make sure that your app does what it says it's doing with regard to background processing.
Here's what I've done using beginBackgroundTaskWithExpirationHandler.
NSTimer
with a scheduled (non repeating) time that is under 10 minutes. For the purposes of my situation I was using 5 minutes.NStimer
's selector fires, end the background task and then instantly call the method that you wrote earlier to start off another background task.This solution isn't really ideal and is still power hungry but will do what you want.
Edit: Since iOS7, I suggest you read this excellent post. Note that this article was last updated in 2013 and is probably irrelevant now.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With