Link to home
Start Free TrialLog in
Avatar of alexwhite19800
alexwhite19800

asked on

Apple and applications running in the background

We are looking to develop our own iOS application and the ability to constantly run in the background would be useful. I know that many apps are terminated by iOS for memory management purposes, or do not restart automatically when the device is rebooted.

The last time I looked into this, Apple only allowed their native apps and third party VOIP apps to have this level of privilege.

Is this still correct?
Avatar of Justin Pierce, MPS-CRM, CNDA, CEH
Justin Pierce, MPS-CRM, CNDA, CEH
Flag of United States of America image

Hi Alexwhite19800,

You can create an app and have it run in the background if the app does one or a few of these things: Background Fetch, Audio, VOIP, Bluetooth Communications, Newsstand downloads, remote notifications, and Location updates.

Here is a link to the strict rules for iOS background execution: Link.

I hope this helps.
Avatar of alexwhite19800
alexwhite19800

ASKER

Thanks, appreciate it.

The question is not so much about running in the background, but ALWAYS running in the background....that is, iOS won't terminate the app.
ASKER CERTIFIED SOLUTION
Avatar of Justin Pierce, MPS-CRM, CNDA, CEH
Justin Pierce, MPS-CRM, CNDA, CEH
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Hi Justin

For apps that are music, use VOIP, or Bluetooth: the ability to run in the background is based on if the music is playing. Once the music stops playing, so does its ability to run in the background. Bluetooth is permitted to always run in the background (like Apple Watch or Pebble). VOIP is like music, in that as long as the call is connected it can run in the background (like taking a Skype call, hitting the Home Button, and then surfing online while still continuing the Skype call).

In terms of VOIP, there are surely VOIP clients that need to run in order to receive a call at any time? For example, my company provides a BYOD VOIP client with my business number. If I want to receive a call on that number, I need that client to be running all the time, not just when I'm using it? Hence the reason I thought VOIP clients had the ability to run constantly in the background.
Hi Alex,

Here is what Apple has to say on the matter

A Voice over Internet Protocol (VoIP) app allows the user to make phone calls using an Internet connection instead of the device’s cellular service. Such an app needs to maintain a persistent network connection to its associated service so that it can receive incoming calls and other relevant data. Rather than keep VoIP apps awake all the time, the system allows them to be suspended and provides facilities for monitoring their sockets for them. When incoming traffic is detected, the system wakes up the VoIP app and returns control of its sockets to it.

Essentially this means that I was right but wrong too. VOIP apps are suspended into the background but the system monitors the sockets. Here is the link to Background Execution for iOS.

Sorry for any confusion, but at least you now have the right info. ;)