I have a a few threads that needs to run constantly or be locked at my disposal. When I lock the phone or swap applications the thread seems to halt until the application is back in focus.
I have a class Worker that is a sub class of NSThread. There is a method called start which is called by the firstViewController that creates the Worker object.
//method start
[self performSelectorInBackground:@selector(run) withObject:self];
What do I need to do to make my thread run all the time, rather than only running while in focus?
Thanks 🙂
When your app enters the background, all threads as suspended – unless you’ve configured your application to use multi-tasking, and your work is being done using the multi-tasking methods. This is detailed at Apple developer.
In short, you basically can’t have a thread running constantly in the background on iOS if you want to be accepted in the App store, unless you’re a navigation or VOIP application. You can have a thread continue to run for around 10 minutes after you enter the background, but that’s it.