The bare minimum for my personal needs :
* activity launches the tracking service
* stop button stops the service
* service listens to GPS updates every 30 sec
* service sends HTTP request to my server on location change
* service stops running after 24 hours

TODO :

display "GPS enabled/disabled" on activity

quit activity on taping stop button

settings activity for
* URL
* updates interval
* maximum service run time
added url field on activity screen (not used for now)
replaced stop button by toggle (does only stop for now)
added gps status textfield + broadcast message from service to activity
Replaced button with a toggle button "Track" on/off.
Added a placeholder for network status (TODO display network status)

Note: No need to stop tracking service if net and/or gps is disabled.
Only warn that it's disabled. Then user enables it. Then service
works again without having to get back to activity and tap "start".
Better in case of network/gps temporarily unreachable or unvolontarily
disabled.
Activity needs to listen to gps status, even if service is not running.
On resuming the activity, is the service already running or has it stopped ?
(has it reached maximum run time ?) => Toggle "Track" button accordingly.
Service send a notification to Activity when it stops by itself on
reaching its max run time.
Back to default max run time of 24 hours (hardcoded for now)
Removed a few useless Toasts.
Bigger text on ToggleButton.
Added "Running since" / "Stopped on" field in Activity.
Streamlined code for lifecycle management :
* Activity already listens to the GPS, no need to get notified about GPS by the service
* use BroadcastReceiver only to get notified of service status updates (no need for extras)
* locationManager initialized in activity's onCreate (better than onResume)
URL now in preferences.
Focus/unfocus edit text field thanks to
http://stackoverflow.com/a/1662088
http://stackoverflow.com/a/6120141
Added preferences activity for :
* GPS updates (in seconds)
* Max run time (in hours)

(compat. w/ Android >= 2.1, because there are some in my family)
Uses prefs for GPS updates & max run time.
GPS status is back in main activity's onResume (mandatory, after all)
Don't restart service if settings changed, it's overkill.
We already let the user know that he has to do it. If he wants to.
Add an AsynTask to handle HTTP requests. Mandatory since Honeycomb.
Warn user to restart tracking only when he changed a value (and service is running)
Typo in a Toast.
Icons.
Add the icon on the layout.
Add connectivity monitoring.
Cleaned-up imports.