Location services can deliver Notifications to your app even when the apps are not running !!! Region-monitoring can relaunch the app, but we need to allow “Background App refresh” setting (iOS 7 only).

From Apple’s doc

So from theoretical point, the app can be relaunched using geofencing, even when it has been forced-quit. However, the limit is the app can only monitor 20 regions at a time.
But it is only the claim, I have read some comments by users who can’t relaunch the app when it has been killed.(This relaunching is also a missing feature of BlueDot).

Quote from Apple:
In iOS, regions associated with your app are tracked at all times, including when the app isn’t running. If a region boundary is crossed while an app isn’t running, that app is relaunched into the background to handle the event. Similarly, if the app is suspended when the event occurs, it’s woken up and given a short amount of time (around 10 seconds) to handle the event. When necessary, an app can request more background execution time using the beginBackgroundTaskWithExpirationHandler: method of the UIApplicationclass.
And also the region-monitoring can check whether an user has entered or exited a region:
By default, every time a user’s current location crosses a boundary region, the system generates an appropriate region event for your app. Apps can implement the following methods to handle boundary crossings: locationManager:didEnterRegion: and locationManager:didExitRegion: (you can specify by explicitly setting the notifyOnEntry and notifyOnExit properties of the CLRegion class when you define and register a region.)

This enter/exit feature (also still to come on BlueDot technology) is done by Apple with a cushion distance, to avoid the system generating consecutive entry/exit events when the user is at the boundary of a region.

NOTE: Apparently, the iOS 8 does not allow Background App Refresh to affect the Location Service anymore. Setting the Background App Refresh to OFF only stop apps in iOS7 from accessing Location data, but not iOS 8 app. (Apple Discussion)

Read more about Location Service for iOS8 in this link.


iBeacon uses Bluetooth LE signal to detect that the device is close to an iBeacon (within 30 metres). iBeacon can relaunch the app even when it has been forced-quit
From Apple:
You define a beacon region with the appropriate initialization method of the CLBeaconRegionclass. When you create a CLBeaconRegion object, you specify the proximityUUID, major, and minor properties of the beacons you want to monitor (the proximity UUID is required; the major and minor values are optional).

We can turn our iPhone into iBeacon for testing purposes, however apps need to be foreground for this test.