Dear Eskimo,
I know this is an old thread, but we are also in desperate need of not loosing the BLE background wake-up once the user force-quits the app. This is for a life-saving, medical device app, that already has the critical alert entitlement granted.
The current patient EXD (not the app) is supposed to wake-up and start BLE advertising, at which point the app will auto-reconnect (once initially connected) if nearby and receive the alert, and then display the critical alert on the iOS device. However, once the user does the normal thing of closing the app, then the whole point of this app goes away. I know you say that education is the key, and that we have to educate the users to NEVER close the app, but that seems unreasonable, especially given some of the older population demographic of these types of medical device apps.
If iOS, closes the app, then it still wakes it up for BLE connections, but not if the user closes it, so I know it's possible to still wakeup the app even if fully closed. To be honest, I don't understand why "Background services enabled" hasn't been made it's own toggle inside every app's settings, like location services, etc., etc. That way the user could decide on an app-by-app basis, to still allow an app to have it's background processing enabled, or not. And when they swipe it away, it just means it's closed it doesn't mean it's basically disabled.
Simply closing the app, is a normal part of being a smart-phone user, and no where does it tell the user, you're also going to basically disable this app when you swipe it away, so it seems like a major design flaw, and one Apple should address, not put back on us like "you need to educate your users". I've been an iOS developer since 2010, and I can tell you, that doesn't work. This background thing has been a thorn in my side since I became a mobile developer. Android makes it so much easier, though they are starting to make it more and more difficult too. I understand the need for limiting background usages, but there needs to be some special cases or something for apps that have the critical alert entitlement at least, otherwise what's the point? How are we supposed to trigger a critical alert if we can do anything in the background?
That said, what if anything can we do in our scenario, or should I just inform the medical device companies that we work with that iOS is not a viable platform for any kind of large scale smartphone app deployment, that need to be an EXD (external alarming device) for BLE enabled medical devices.
Best regards,
Mike H.
Software Engineer / Velentium LLC