Hi, And so do we, I've only had to add start foreground since ICS, before that the service ran OK for days or weeks without being killed. That GPS uses a lot of battery is a total myth IMHO. With screen off can log for over 8 hours & more on some devices. I also support sub seconds GPS logging from external Bluetooth devices, buffering the data & writing periodically significantly reduces battery drain. Regards
On May 10, 8:56 pm, lbendlin <l...@bendlin.us> wrote: > We have such a program that supports GPS logging every second. We use a > foreground service (and a notification icon) and the service very rarely > gets killed (and most of the time it gets restarted quickly by the OS) . > Our users are fully aware of and fully ok with the battery impact. Most of > them use the app in the car with the device in a powered cradle. You > wouldn't believe how many requests we get for subsecond GPS logging. > Thankfully the consumer GPS devices don't go that low. > > We actually see the opposite problem. When the user exits the application > this sends the stop signal to the service. However, the service then > sometimes restarts on its own. We had to add logic to the service to check > if the app is still there or if the service is orphaned (in which case we > stop it from the inside). Hmm, maybe that's the idea. Not bother stopping > the service from the app, let the service stop itself? > > > > > > > > On Thursday, May 10, 2012 6:17:30 AM UTC-4, William Kelley wrote: > > > On Wednesday, May 9, 2012 9:40:20 PM UTC-7, Kristopher Micinski wrote: > > >> What you're doing isn't draining the battery only because of the > >> service, but also because of the location updates you'll be getting.. > > > GPS fixing is definitely the main battery killer here, but there are smart > > ways to handle it. > > >> 30-40 seconds, do you really need that kind of accuracy? I would say > >> that I'd only want something like 5 minutes, which an AlarmManger > >> certainly could do (I believe, at least..) > > > Actually, I like to get accuracy of about 5-10 seconds when driving, less > > when walking. But 5 minutes would be basically useless. At 70 miles an > > hour, that's 6 miles between points. Even when hiking, I can make quite a > > few switchbacks and directional changes in 5 minutes. It all really depends > > on what you want out of a GPS tracker. I want a detailed log with great > > accuracy. I know battery life suffers, but when you're in a car, you can be > > plugged in, so that helps. And even when hiking, 10 seconds between fixes > > allows my phone to go for 8 hour hikes, so it's completely reasonable. > > > I changed my app to run as a foreground service and so far that has made > > all the difference. It hasn't once been restarted in 3 hours. For some > > reason, I thought a background process would be less likely to be killed, > > but now I see that services that let the user know exactly what is going on > > by being in the foreground and being required to show a notification icon > > are more transparent and thereby more "trusted" by the OS. The one thing > > that I don't understand is WakeLock. I am running my service without a > > wakelock, the phone has been off for a few hours, and it is still logging > > GPS points. Should I assume that some other app (I am running Tasker and > > some other automation apps as well as CatLog) are keeping the CPU awake? > > > Thanks for everyone's help. Little by little, I am getting a better grasp > > of what I am doing. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en