Perform tasks only when the user specifically asks.
Some tasks can be energy intensive, but not strictly necessary for some use cases of the app.
Provide a mechanism in the UI (e.g., button) that allows users to trigger energy intensive tasks.
In a beacon monitoring app, there are situations in which the user does not need to keep track of her/his beacons. Allow the user to start/stop monitoring manually.