Would someone be so kind as to briefly explain how the multitasking works with no difference in battery life? I have a fairly solid idea, but would like to see whether others are on the same page.
At times, I notice that when I kill certain RAM hogging apps, it makes a noticeable difference in my battery life. As a result, it's left me wondering whether all of the apps released are truly optimized to multitask at the same level or are some just better designed to be more effective.
Apple's design is this: If you aren't "signed up" with the OS to do something in the background, it suspends you. End of story. You aren't given CPU cycles, events don't come in, the app is frozen. So as long as the app is frozen, all it's doing is consuming RAM, which
has to be powered at all times anyways.
Where differences come in is based on what services an app might sign up to use in the background, and how well it does it.
- VoIP will keep the radio and CPU active, so being on a call is just as power intensive as if it was a cell call.
- Audio may or may not be all that power consuming. Differences are in implementations, or the need to decode it themselves (wma) versus letting the hardware do it (mp3/mp4/m4a), or if they are streaming (Pandora) or not. Letting the hardware decode saves power, as does not having to stream the audio.
- Location services (Loopt, Trapster, TomTom with a route, etc) are extremely battery hungry. This is because the GPS unit is a radio, and just as power hungry as the cell or WiFi radios. Any apps that use this in the background will drain the battery pretty quick.
- Task Completion varies a ton. This is supposed to be a means to let apps finish up a task after you leave it. Say I tell NewsRack to refresh my RSS feeds, and then switch to a different app. NewsRack will finish the refresh before it gets suspended by the OS. This also applies to a couple IRC apps, and file management apps like Filer that will try to finish a file download in the background. The OS will honor a request for task completion, but will only honor it for up to 10 minutes. At 10 minutes, the app is suspended, end of story.
So it really depends on the app and what it is doing. RAM hunger doesn't factor into it as heavily as you think (and I'm not sure what evidence you have to say that all the apps you are having problems with are RAM hungry). There is a bit more work to flush an app out of RAM, but it should be getting offset by the ability to 'cache' apps in RAM and not have to read from flash into RAM every time you launch an app.