I know BroadcastReceiver watches for text, phone events, etc... but can you run LocationServices as a service and event based on Location?
For example, you are near
This question is more then 2 years old but there is now very very easy and battery efficient way to do this. The concept is called Geofences. You can learn it in more detail below:
http://developer.android.com/training/location/geofencing.html