As per this link:
recieving location updates after app is terminated
There are factors that will determine whether your code is executed, namely, your app needs to:
Set location services active during the didFinishLaunchingWithOptions call, and it needs to be for changes of type: lctLarge (LocationChange property on TLocationSensor), if the app was launched due to a location change (UIApplicationLaunchOptionsLocationKey is present in launchOptions)
Call setAllowsBackgroundUpdates(True) (for iOS 9 and later) so that it actually receives location updates in the background, in addition to having location included in UIBackgroundModes
Call requestAlwaysAuthorization, so that your app can be launched into the background.
Implementing the first requirement could be done in a couple of ways, either by "patching" FMX.Platform.iOS so that launching due to a location change sends a message that your code can intercept, or by intercepting the FinishedLaunching message (without the need for a patch), except that in the latter case, you might not be able to determine whether or not the app was launched due to a location change. This may not matter though, as you could also intercept the BecameActive event, where you can set LocationChange to lctSmall, if required.
In any scenario, you will not see your app appear if it is launched (i.e. was not running to begin with) due to a location change, as iOS keeps the app "invisible". You can however verify that the code works by logging the location updates with timestamps so you know when the changes occurred.