Well, that's part of why I keep the last of the 0.7 releases on the
main GHD website, in case something like this went wrong with
GeohashService (0.8.0 was the first release with GHS). I mean, it's
entirely possible I'm doing something wrong with the callbacks and
something isn't being closed out right, or I'm not understanding
something pretty key in how services are supposed to work, but, at
least fundamentally, I'm not sure what in GHS would cause it to leak
memory like that.
Unfortunately, making the service a simple option is a lot harder than
it sounds. I've made GHS pretty well entwined with the rest of the
classes at this point (MainMap, the detailed info screen, and both
wiki editors now listen to it instead of doing their own GPS
tracking), and it'd be sort of ugly to keep both of them in-code at
the same time. It'd turn into an unmaintainable mess in short order
if I did that.
As per the battery issue, if you're actually in the application
(MainMap, detailed info, wiki editor), it'll grab GPS updates as
quickly as possible. If you've returned home and kept the service
running, you can set it to only get updates every 30 seconds (or so)
with the Power Saver option in the settings screen (this isn't the
default because some phones, like the Droid, don't seem to like
pulling GPS out of power saver properly). That's all I can do,
besides slowing down GPS while on the map itself (like, only getting
fixes every 10 seconds or so). Do you know if things like everytrail
keep the GPS running full-tilt while it's going, or does it tone it
down significantly?
But, like I said, the 0.7 releases are still on the website, if
that'll help. I'll go over the service callbacks again once I've got
time and see if I'm missing something obvious. Worst case, I'll try
backporting the non-service-related changes to 0.7 and make a new
release on the website (and if I can find a better way around it when
I get tracklog support, maybe I'll remove the service altogether).
I'll also test it more on the G1 (you still have a G1, right,
Thomas?). I've been doing most of the latest testing on my Nexus One
and my test Droid, each of which are significantly faster than the G1,
and that might be what's causing a large amount of the sluggishness.
I'll keep looking into this.