title: Most power efficient location tracking implementation? Intent/BroadcastReceiver/LocationListener/Service/IntentService/AlarmManager?
body: <p>I have been through solutions and found that there are a lot of ways to implement a location tracking logic.</p>
  
  <ol>
  <li>Intent+BroadcastReceiver+LocationListener</li>
  <li>Intent+IntentService+AlarmManager</li>
  <li>LocationListener</li>
  <li>other techniques or different combinations of the above...</li>
  </ol>
  
  <p>I am trying to find out what would be the best practice(most power efficient way) to achieve the same...</p>
  
  <p>I have a library class MyLocationClass.java which has two methods 
  1. startTracking() - Start sending user location after T time and only if the user has moved X distance
  2. stopTracking() - stop sending location updates.</p>
  
  <p>A simple answer seems to be a LocationListener because of its inbuilt Time Passed/Distance Moved features which provides a better user experience, but then...</p>
  
  <p>I don't want the GPS to be on all the time? In fact it should be only switched on when T and X are crossed. Will using a Service/IntentService and/or/with an alarm manager Timer will be a better solution? Can BroadcaastReceivers with LocationListeners prove to be the better solution?</p>
  
  <p>Please suggest.</p>