I'm amused. It's wasting battery life to reopen apps but not to restart the entire phone?
When the system works as advertised, then they're not actually running. The problem is that it doesn't always work as advertised.
Apps running in the background are running. Apps that have been suspended can be ejected from memory at any time. A critical piece of app development is responding to the system events used by this process so you can commit state data to flash and then recover from it when the app is restarted.
All completely correct. The problem is that sometimes apps are running in the background when they're not being used and are not doing anything (visible to us), so they drain battery for no (apparent) good reason.
I think Apple could do us all a favor if they would provide some indication (maybe on the task switcher screen) to indicate the state of each app. Maybe icons for "running (foreground)", "running (background)", "suspended" and "terminated". This way we can immediately see what the state is and kill an app if it's (for example) running when we think it should be suspended.
If Apple is concerned about the beauty of the interface, they can make this indication a configurable option. Maybe under some "advanced" or "developer" system settings panel.
Actually, suspended apps can be ejected from memory if the memory is needed by a foreground app.
According to
Apple:
"When a low-memory condition occurs, the system may purge suspended apps without notice to make more space for the foreground app.
The problem here is that we don't know which apps still do this. And checking battery usage history only helps after your battery has been drained and you want to figure out after the fact what caused it.
If we could see the state of each app, then we would know before we've lost all our battery time.
Personally, I think Apple should look for apps that cheat like this and keep them out of the App Store, but until then, there really is no good way to know (without having already been burned enough to figure it out on your own) if an app is violating the rules.