Background Apps: OMG My Phone Iz Broke!

Posted on 20 Aug 2010 by Ray Merkler

For the entirety of the iPhone’s life, tech heads have cried for one feature more loudly than any other: Background apps. And now, with iOS 4, we have it.

And I hate it.

Perhaps I should qualify that. There are some minority cases where I like having background processes. Leaving Pandora playing in the background is nice. Letting a GPS app maintain its fix can save you from missed turns. But outside of apps that explicitly need to execute code in the background for very good reasons, nothing changes. Developers have already been designing their apps to look like they never closed when you return to them. The experience is the same.

Except for one crucial problem: All apps built with the iOS 4 SDK will stay in memory by default, even big, memory intensive apps like games, unless they opt out.

In theory, iOS will kill these background apps when it needs to free up memory. It practice, it doesn’t appear to use enough prejudice in doing so. When I play Zen Bound 2 or Plants vs Zombies, both resource-intensive games, quitting with the Home button sends the game to the background. If I tap the icon again, the game reloads right where it was, which is nice, but unless I force-quit the app (double-tap the Home button, hold down on the app’s icon, and then tap the red minus sign — not intuitive), every other operation on my phone, even something as simple as loading a page in Safari, takes orders of magnitude longer to process.

How many users know enough about what’s going on under the hood to realize that force-quitting background apps will fix their phone’s performance? How many even know they can? Less than 1%, I’d wager. The rest will just think the phone is broken.

As an example, take my wife — please! (No, don’t.) While reading her email, the Mail app froze. After a few seconds, she gave up, pressed Home, and tried to open Facebook, which refused to load. Being the reliable tech geek I am, I carefully and painstakingly explained how backgrounding works, why it was causing her apps to behave the way they were, and how to force-quit the offenders. She then proceeded to spend several minutes force-quitting every single app in her background dock. I eventually explained to her that not all of those apps were necessarily running in the background, but no user should need to know the difference.

Perhaps things are better on the iPhone 4 (I’m still using a 3GS — holding out for 64GB!), but the solution to the problem is so simple: iOS should kill background processes more readily, starting with memory-slurping games — almost all of which save their state to disk when stopped, anyway — leaving more critical processes like music and GPS as last resort kills. Why Apple has not at least done this I find astonishing.

The current implementation of backgrounding is awful. The stark simplicity of day-to-day iOS life — launch an app, do some stuff, close it, forget it — is gone. It used to be you would press the Home button, and your app would close. Now, you press the Home button, and your app closes unless one of myriad opaque conditions are met.

It puts additional responsibility on developers, too. Which, okay, they should be responsible about how their apps consume resources, but at least in the pre-iOS4 time, users were well protected from careless memory hogs. Developers have been trained from day one to expect a sandbox when their apps launch, with the rest of the system protected from them, and them from it. The philosophy had its disadvantages, but at least we as developers didn’t have to worry about other developers dragging our apps down.

I like being able to hear Pandora or leave a GPS app running while I check Twitter. These are good things. The iPhone is a more complete device because of background apps. Unfortunately, the new functionality is resource intensive, opt-out only, and requires extra under-the-hood expertise from users. Apple should sit down and reevaluate how iOS handles backgrounding. We expect more elegance than this from Cupertino.

Share this:
Share this page via Email Share this page via Digg this Share this page via Facebook Share this page via Twitter

7 Responses to Background Apps: OMG My Phone Iz Broke!

  1. Mudassar says:

    A good idea would be to always close the Apps whenver home button is pressed. And "under the hood", keep an option called SPRINGBOARD which when tapped would keep the running App in background. In this way, a user can choose which App to keep in background. The Rest , by default would be closed by the Home Button….

  2. iMoo says:

    Yeah i agree with this post. Maybe Apple should create an option in the settings where we can turn ON and OFF the backgrounding by groups (eg Games, News, Navigation) or maybe certain folders we have created or just individual apps. I too find myself having to keep going in and deleating the app from my task menu. If it affects battery life or not am not sure but always think it's affecting something.
    Looks like a jailbreak and the app killl switch you mentioned on here for me.

  3. Lance F. says:

    If you're jailbroken, you can install Backgrounder and use it to disable Apple's "fast app switching". By doing so, only apps that actually do something in the background will be allowed to background.

    If you (or anyone else) wishes to try it, I recommend the following settings:

    Backgrounding method: Native
    Fast App Switching: OFF
    Enable at Launch: ON
    Stay Enabled: ON

    Note that with the "Backgrounding method" set to "Native", iOS4's built-in multitasking functionality will still be used (and not Backgrounder's old 3.x way of backgrounding). So basically the only difference will be that paused apps will not continue to hang around in memory.

  4. patrickj says:

    I still say I wouldn't mind this being treated like Notifications. Chuck up a popup saying 'would you like to let ABC Memory Hog run in the background?' and give it a Settings section like the one for Notifications where we can easily toggle an app on or off for staying 'alive' in the background – for instance when seeing one that appears to make things painfully slow when backgrounding.

  5. Jay says:

    I agree with you Ray! It wasn't until I jb again with jailbreakme.com and got SBS Settings back on tap that I realized which specific apps would remain running in the background! The hidden backgrounding dock that surfaces from the double-click in iOS4 doesn't tell you which ones are currently running; instead it's more a "recently used apps" dock.

    Patrick has the right idea: it should be a menu option in the Settings menu.

  6. Pingback: chpwn explains: no ProSwitcher for iOS 4 [Jailbreak] « Just Another iPhone Blog

  7. Rose says:

    Thank you for the insightful post. I'm a newbe to iphone and appreciate all the work and useful information.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>