The iOS background location APIs are so restrictive precisely so that you can't drain the battery. The OS, which is running anyway, can listen for major changes in location and start your app only if the location change is relevant to your application.
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...