> On Android, your app has to be running in the background always, to constantly check for such changes itself, which significantly drains the battery. If several such apps are running...
Strictly false. Your app may still have a daemon in the "running" state in the background, but Android supports the exact same "sleep until significant changes are detected by the OS" method that iOS uses. I have multiple applications that can take action of some form or another based on changes to my location, and unless I have my phone screen turned on and actively running the UI for those apps, they never even appear in the list of applications using the most battery.
Strictly false. Your app may still have a daemon in the "running" state in the background, but Android supports the exact same "sleep until significant changes are detected by the OS" method that iOS uses. I have multiple applications that can take action of some form or another based on changes to my location, and unless I have my phone screen turned on and actively running the UI for those apps, they never even appear in the list of applications using the most battery.