Well, I'm SUPER glad that Dave is back. I was afraid we'd lost him.
Although Dave has cited copious amounts of credentials, I am still left wondering why he insists so much that he is correct when, in fact, he is not.
I'm sorry. I can resist the urge to flame no longer.
And, since Mr. Dave loves to "quote legitimate sources" so dearly, I'll take my shot here.
At
this location, Apple's developer documentation (I think it's available to non-developers!) attempts to provide app developers some guidance as to what's acceptable and not acceptable for their apps to do while suspended. There are almost a dozen bullets. But there are two that stand out.
The first:
emphasis added by me
Clearly, iOS allows one to create, manipulate, and otherwise update views while in the background. We do it all the time. (We develop apps not intended for "general public" consumption. Rather some of our apps are intended more as "kiosk" apps where, if iOS would let us, they would be the only app running and we would disable the home button. They are typically deployed in physical environments where the users are not able to push the home button. But, if we take it out and pass it around for "show and tell," we require the views to remain fresh and up-to-date upon resuming the app.) We do this -- against Apple's general advice -- and it does everything you'd expect like slow down the foreground app and all that other lovely stuff. But we're not complaining about it. I'm just sayin'...
The second...
again, emphasis added by me
Minimal work? How can that be? I thought that -- according to Mr. Dave --
NO work was serviced for backgrounded apps. Hmmmm... I hope I didn't just cause an aneurysm.
And, for fun, I'll throw in a third bullet:
This one's going to be more fodder for Mr. Dave to interpret as he pleases. Admittedly, the prose is a bit loose here. However, I can attest (again, through direct personal/professional experience) that you can (and we DO) utilize network connectivity to send and receive messages while in the background. A more common example of this behavior is those apps that notify your friends of your real-time position. Even if your copy of the app is backgrounded, it (as Dave agrees) receives significant location changes. The kicker is that, once it receives it, it can "do other stuff." This other stuff includes forming and sending a network message to all your mates (as Dave might say) as to where you happen to be at the moment.
And, I'm sorry. I just can't stop here. I'm on a bit of a roll, I suppose. It seems Mr. Dave likes to freely interchange the terms "backgrounded" and "suspended." I'll admit my experience on this particular forum prohibits me from doing this super gracefully (as in, pretty), but
here's a link that clearly distinguishes between the two states. (Look at Table 2-3... just below the anchor I've provided with this link.)
It's true, for
SUSPENDED apps...
However, for
BACKGROUNDED apps...
once more, emphasis added
Seems our "mate" Mr. Dave should refer to that last section referenced by the above quote.
The bottom line (as I meant to conclude my previous post, Post #100) is this. Apple was initially (pre-iOS4) very reluctant to allow any backgrounding of any app (other than their own apps, like Phone, etc.) for the simple reason that it opens the door for bad user experience. However, with the advent of iOS4, the fine developers at Apple went to painstaking lengths to (a) somewhat limit what you can do in the background and (b) provide copious detail about "best practices" while developing apps that will "do things" in the background. So, they didn't provide us with "real multitasking" and all that. Rather, they did the Apple Thing and tried to give a large portion of the population the features they wanted (location awarenes, music players that run while you use other apps) while trying to achieve some balance and trying to maintain an overall good user experience.
In my opinion, they did a fantastic job. No single release of iOS is going to make 100% of users happy 100% of the time. When you consider that, I think most reasonable people would also tend to agree -- they did a pretty good job of striking that balance.
My crazy non-public apps are not the only ones that do resource-intensive things in the background. I also purchase a few from the App Store. And, while I'm not naming them here, the truth is I know that some apps are not good Resource Citizens. There are times when a background app is -- I don't know -- attempting to use the network and having trouble. Or is doing some other task in the background. During these times, my foreground app will sometimes lag or freeze for a second or so. (That's a long time, actually, to be sitting there wondering if your phone just crashed.) But it can and does happen.
Again, trying to get back to the spirit of the OP's question: the fact that iOS automatically sticks apps in the background is MOSTLY not a problem. But it can become a problem, depending on the particular apps you use. As suggested above, my "mates" and I have sort of a "known offendors" list. Sometimes, our phones bog down just a tiny (but noticeable) bit. When that happens, we purge the offender. And, while we're there, we just purge everything. (It's a cute habit of just tapping the screen where that right-most app in the tray always slides to. Takes about 5 seconds of tap-tap-tapping to clear everything out.)
This thread got jacked to a STUPID argument over the FACT that apps can (and do) run in the background... and use memory... and read/write to flash/disk... and make network connections... and... and... The bottom line is that this is not the issue. Apple did a FINE JOB striking a balance between "no backgrounding" and "controlled backgrounding." Apps still "do things" in the background. Memory is still traditionally managed in the background. Additionally, your app can be "jettisoned" whether you follow all of Apple's guidelines or not. There are a TON of things happening at the lower levels of iOS that affect the usability. Whether or not something is "running" is merely one small example of them.
With that, I'll borrow something from a previous poster:
/thread
(yeah... I'm kidding... because I saw how much love that last guy got with that. And, while I really do think we should be done here, I'm happy to give Mr. Dave the last word. And I'll also admit I'm ashamed I got (troll?)baited into wasting 20 minutes of my day on this. So, I promise. I'm out. Dave can say what he wants. But that, his CS degree, and whatever other tripe he uses as "evidence" won't change the facts. Nor will it change the OP's intent to determine whether iOS4's auto-backgrounding is a "bad thing."