My company has developed the iBeacon utility, which will serve as either a beacon transmitter or a receiver (not at the same time, just for simplicity).
It is registered for both the bluetooth-central mode and the bluetooth-peripheral background, and when it is in the beacon receiver mode, it uses both startMonitoringForRegion and startRangingBeaconsInRegion.
When the application is in the background, and even if the device is locked, I woke up in the background and can run local notifications or play sounds.
I previously tested it and forcedly turned off a small memory (just by launching the application from Xcode and then starting the application after the application until I see a message in the console that the application was interrupted by paint before the memory pressure).
However, today I just tried again, and despite the fact that I had expected more than an hour if my application stopped due to memory pressure while listening to new zones of the beacon, I will no longer restart when the beacon starts transmitting again. I made sure that the beacon launches didEnterRegion when the application is in the foreground and when in the background.
I also tested it by launching the application from a springboard (not from Xcode) and launching dozens of heavyweight applications, until I was sure that my application was terminated and I did not receive a restart with beacon notifications in this case either.
I don’t remember to receive the iOS update since I first started testing it, but it looks like the behavior of the system has changed over the past couple of weeks. I have no specific notes when I tested it and the OS version that I used, but it seems that something that worked before this no longer works.
, , , . - , , , , - ( ).