We have a Service that continuously collects sensor data on the phone. This service should run \"forever\", e.g. as long as the user wants, and not be killed by the system.<
Try overriding the onCreate() method of your service. If the service is killed and then restarted it's onCreate() is called, but not onStart(). So you can, for example, add call to onStart() from onCreate to make it behave like the RunKeeperService.
How do you start the service? Have you tried startForeground()? That's not an absolute guarantee, of course, but should at least lengthen the lifespan.